Asp.net mvc 2 3个实体执行相同的lambda谓词。如何为这些实体创建一个lambda表达式

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() { //这里出

我有3个实体。
产品
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