实体框架中表的条件连接

时间:2013-07-09 08:21:35

标签: c# performance entity-framework join conditional

假设我允许用户过滤一些不一定在UI中显示的数据。 我不想包含一个没有过滤的表,查询非常庞大,并且每一点性能提升都非常受欢迎(我个人认为在这些极端情况下我会使用纯SQL,但最好是EF)。

所以基本上归结为以下几点:

var listOfFilterProperties = { "C" };
var q = 
    from x in context.X
    where x.B = 'zzz'
    select new DataObject {
        prop1 = x.A,
        prop2 = listofFilterProperties.Contains("C")
        ? x.B.C
        : String.Empty
    }

当然这个例子非常人为,但基本原理是相同的。

如果listOfFilterProperties不包含FirstName属性,一切都很好,花花公子,但只要它包含它,一切都在crapper下面。 所以我可以概括地说这不是要走的路。

知道我应该怎么做吗?

0 个答案:

没有答案