Asp.net mvc 2 如何创建通用lambda表达式。我的许多实体执行相同的Lambda表达式谓词
我使用实体框架4。Asp.net mvc 2 如何创建通用lambda表达式。我的许多实体执行相同的Lambda表达式谓词,asp.net-mvc-2,entity-framework-4,lambda,repository-pattern,Asp.net Mvc 2,Entity Framework 4,Lambda,Repository Pattern,我使用实体框架4。 如何执行通用Where Lambda子句? 我有许多实体需要相同的Where查询 public Func<SupplierTypeText, bool> GetLmbLang() { return (p => p.LangID == 1); } public Func<ProductText, bool> GetLmbLang() { return (p => p.LangID == 1); } public Fun
如何执行通用Where Lambda子句?
我有许多实体需要相同的Where查询
public Func<SupplierTypeText, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
public Func<ProductText, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
public Func<CategoryText, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
----更新-----
这就是我所尝试的,但没有任何效果。
我的基层
public class BaseGenericModel
{
public int LangID { get; set; }
public Func<BaseGenericModel, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
}
公共类BaseGenericModel
{
public int LangID{get;set;}
公共函数GetLmbLang()
{
返回(p=>p.LangID==1);
}
}
我的界面是
public interface IBaseRepository<T> where T : BaseGenericModel
{
Func<T, bool> GetLmbLang();
}
public class BaseRepository<T> : IBaseRepository<T> where T : BaseGenericModel
{
public Func<T, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
}
公共接口IBaseRepository,其中T:BaseGenericModel
{
Func GetLmbLang();
}
公共类BaseRepository:IBaseRepository,其中T:BaseGenericModel
{
公共函数GetLmbLang()
{
返回(p=>p.LangID==1);
}
}
我无法从SupplierTypeText、ProductText、CategoryText中调用此存储库。那是行不通的 似乎有三种不同的类型都具有LangID属性。我将使它们从定义此属性的公共基类派生:
public class BaseClass
{
public int LangID { get; set; }
}
然后有一个单一的方法:
public Func<BaseClass, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
我使用实体框架4。如何使SupplierTypeText、ProductText、CategoryText从基类派生以使用您的通用GetLmbLang()方法。这些类SupplierTypeText、ProductText、CategoryText不能从基类派生,因为它们已经从EntityObjects派生,然后使它们实现接口。我不确定如何完全理解。我将阅读有关接口的内容并尝试一下。我为我的所有存储库创建了一个接口,每个接口都针对一个类模型@达林,谢谢你的帮助,我很快会告诉你的。好的,我知道了。谢谢你的帮助,达林。
public class BaseClass
{
public int LangID { get; set; }
}
public Func<BaseClass, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
public class SomeRepository<T> where T: BaseClass
{
public Func<T, bool> GetLmbLang()
{
return (p => p.LangID == 1);
}
...
}