Linq to sql 添加常量where clasue到Linq到SQL映射

Linq to sql 添加常量where clasue到Linq到SQL映射,linq-to-sql,Linq To Sql,可以将常量where子句放入Linq到SQl映射 我真的不想在查询级别或在我的数据访问对象中这样做,因为这些对象目前完全是通用的,我希望保持这种方式,为其他开发人员创造生活,并避免我不断重复自己 Colin G我解决这个问题的一种方法是使用一个扩展方法,该方法返回实体类型的IQueryable,然后在需要该实体的任何地方使用它 例如,如果我所有的自定义查询都只对没有设置Inactive标志的马感兴趣,那么我会有一个名为GetHorses的扩展方法: public static IQueryabl

可以将常量where子句放入Linq到SQl映射

我真的不想在查询级别或在我的数据访问对象中这样做,因为这些对象目前完全是通用的,我希望保持这种方式,为其他开发人员创造生活,并避免我不断重复自己


Colin G

我解决这个问题的一种方法是使用一个扩展方法,该方法返回实体类型的IQueryable,然后在需要该实体的任何地方使用它

例如,如果我所有的自定义查询都只对没有设置Inactive标志的马感兴趣,那么我会有一个名为GetHorses的扩展方法:

public static IQueryable<Horse> GetHorses(this DataContext db)
{
    return from h in db.Horses
           where !h.Inactive
           select h;
}
它们看起来是这样的:

var deadHorses = from h in db.Horses
                 where !h.inactive && !h.Alive
                 select h;
var deadHorses = from h in db.GetHorses()
                 where !h.Alive
                 select h;

我相信您可以使用您的t DataContext的Options属性来实现这一点。 检查AssociateWith方法