Asp.net mvc 2 如何创建通用lambda表达式。我的许多实体执行相同的Lambda表达式谓词

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

我使用实体框架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 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);
    }
    ...
}