【发布时间】:2011-10-26 14:47:18
【问题描述】:
我的实体数据模型中有大约 20 个不同的报告表,它们都有一些公共字段(如 start_date 和 end_date)。当我的报告应用程序为给定报告提取数据时,我要做的第一件事就是过滤表中的今天日期。这意味着我在整个代码 (VB) 中都有与此类似的代码块:
Dim data =
From r in _context.Rpt1
Where
r.start_date <= Now And
r.end_date >= Now
似乎应该有一种方法可以将此逻辑放入一个可以让我过滤任何表的函数中,但我不知道如何构造它。我可以这样做:
Public Function FilterByDate(data As IEnumerable) As IEnumerable
Return From d In data Where d.start_date <= Now And d.end_date >= Now
End Function
但由于返回值是一个通用的 IEnumerable,我失去了在特定报告列上提前绑定的所有优势。
有没有一种方法可以创建一个通用函数,该函数可以将一些逻辑应用于不同的对象并返回该特定对象而不是通用对象?或者,有没有办法将返回值转换回特定的实体对象类型?有没有另一种方法来解决这类问题?只是寻找想法或看待问题的不同方式。
【问题讨论】:
标签: .net vb.net entity-framework