C# 公共参考数据的查询条件
对于实体框架,我有一组标准化的查找表。我正试图为这些表集开发一个通用例程,其中EffectiveDate和EndDate介于今天之间。如果有一种常见的方法可以动态设置谓词,那么就不必为每个表设置谓词 每个查找都实现一个接口:C# 公共参考数据的查询条件,c#,.net,entity-framework,orm,entity-framework-6,C#,.net,Entity Framework,Orm,Entity Framework 6,对于实体框架,我有一组标准化的查找表。我正试图为这些表集开发一个通用例程,其中EffectiveDate和EndDate介于今天之间。如果有一种常见的方法可以动态设置谓词,那么就不必为每个表设置谓词 每个查找都实现一个接口: public class LookupType : IEffectiveEndDates { public DateTime EffectiveDate { get; set; } public DateTime? EndDate { get;set; }
public class LookupType : IEffectiveEndDates
{
public DateTime EffectiveDate { get; set; }
public DateTime? EndDate { get;set; }
}
我是否可以将此接口与一些东西结合使用来定义通用的query all方法?您可以在接口之外创建一个谓词,并在LINQ语句中使用它
var date = DateTime.Now;
Expression<Func<IEffectiveEndDates,bool>> pred =
x => x.EffectiveDate <= date && x.EndDate >= date;
var lookups = db.ConcreteLookups.Where(pred).ToList();
var date=DateTime.Now;
表达式pred=
x=>x.EffectiveDate=日期;
var lookups=db.ConcreteLookups.Where(pred.ToList();
这是因为-
Func
被定义为Func
,这意味着实体(T
)的类型参数是逆变的,因此Func
也可以传递给Func
澄清一下:你想获取今天介于生效日期和结束日期之间的所有数据,对吗?是的,所有数据只使用这两个字段。我认为你需要翻转符号。它不应该是
x.EffectiveDate=date
?