是否可以在Linq to SQL中使用自动过滤器?

Joã*_*rme 1 c# linq linq-to-entities linq-to-sql

我正在研究一个客户决定使用记录状态的系统.其中一个是X被排除在外.我想知道的是,是否可以运行添加类似内容的linq查询

where status != 'X'
Run Code Online (Sandbox Code Playgroud)

自动不显示"已排除"记录.谢谢 !

Dea*_*ing 5

有点.在LINQ查询懒洋洋地评估,这样你就可以追加到这些条件,你居然取第一个结果像以前一样,它仍然会造成使用"最佳" SQL.

例如:

// an extension method on the LINQ context:
public static IQueryable<Story> FilteredStories(this DbContext db)
{
    return from story in db.Stories where status != "X" select story;
}

// ...later...
var stories = from story in db.FilteredStories()
              where title = "Something"
              select story;
foreach(var story in stories)
{
    // whatever...
}
Run Code Online (Sandbox Code Playgroud)

您还可以"隐藏"基础LINQ上下文,并始终通过附加status != "X"条件的包装类.当然,那么问题是,如果你想要一个过滤列表,你必须跳过箍...