我的实体数据模型中有大约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我失去了对特定报表列早期绑定的所有优点。
有没有办法创建一个单一的泛型函数,可以将一些逻辑应用于不同的对象,并返回该特定的对象而不是通用的?或者,有没有办法将返回值转换回特定的实体对象类型?是否有另一种方法来解决这类问题?只是寻找想法或不同的方式来看问题。