0

假设我允许用户过滤一些不一定显示在 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 属性,那么一切都很好,但只要它包含它,一切都会变得糟糕透顶。所以我可以大概得出结论,这不是要走的路。

知道我应该怎么做吗?

4

0 回答 0