Asp.net mvc 2 3个实体执行相同的lambda谓词。如何为这些实体创建一个lambda表达式
我有3个实体。Asp.net mvc 2 3个实体执行相同的lambda谓词。如何为这些实体创建一个lambda表达式,asp.net-mvc-2,entity-framework-4,lambda,repository-pattern,Asp.net Mvc 2,Entity Framework 4,Lambda,Repository Pattern,我有3个实体。 产品 LangID 产品名称 类别 LangID 猫名 产品类型 LangID TypeName 如您所见,它们每个都有LangID属性。 我希望能够创建一个只包含一个函数的通用存储库,该函数将返回Func GetLmbLang() 公共接口IBaseRepository,其中T:class { Func GetLmbLang(); } 公共类BaseRepository:IBaseRepository,其中T:class { 公共函数GetLmbLang() { //这里出
产品
LangID
产品名称
类别
LangID
猫名
产品类型
LangID
TypeName
如您所见,它们每个都有LangID属性。 我希望能够创建一个只包含一个函数的通用存储库,该函数将返回
Func GetLmbLang()
公共接口IBaseRepository,其中T:class
{
Func GetLmbLang();
}
公共类BaseRepository:IBaseRepository,其中T:class
{
公共函数GetLmbLang()
{
//这里出错
//这在这里不起作用
返回(p=>p.LangID==1);
}
}
有人有一个想法???实现这一点的一种方法是使用LangID属性创建一个接口,并让您的每个类实现它
public interface IHasLangID
{
string LangID { get; set; }
}
public class Product : IHasLangID
...
public class Category : IHasLangID
...
public class ProductType : IHasLangID
...
public interface IBaseRepository<T> where T : IHasLangID
...
public class BaseRepository<T> : IBaseRepository<T> where T : IHasLangID
公共接口IHasLangID
{
字符串LangID{get;set;}
}
公共类产品:IHasLangID
...
公共类类别:IHasLangID
...
公共类ProductType:IHasLangID
...
公共接口IBaseRepository,其中T:IHasLangID
...
公共类BaseRepository:IBaseRepository,其中T:IHasLangID
@Jean和你放在同一个地方,我想是在BaseRepository里面。
public interface IHasLangID
{
string LangID { get; set; }
}
public class Product : IHasLangID
...
public class Category : IHasLangID
...
public class ProductType : IHasLangID
...
public interface IBaseRepository<T> where T : IHasLangID
...
public class BaseRepository<T> : IBaseRepository<T> where T : IHasLangID