LINQ中的参数动态"不"(或任何其他代码)

Cod*_*ker 2 c# linq parameters

好的,

这可能非常简单,甚至可能无法实现,或者我只是大脑冻结:)

这是我想要做的一个例子:

public void SomeMethod(bool include)
        {
            using (AccountDataContext db = AccountContextFactory.CreateContext())
            {
                if (include)
                {
                    var query = from a in db.FundingTypes where a.FundingTypeId == 1 select a;
                }
                else
                {
                    var query = from a in db.FundingTypes where a.FundingTypeId != 1 select a;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

我想动态更改!=和=而不必编写全新的查询.我在现实生活中使用的查询非常大,我不喜欢代码重复.

思想还是想法?

谢谢

Eri*_*ert 11

这看起来非常简单.

var predicate = include ? 
  (Func<int, bool>) x=>x == 1 : 
  (Func<int, bool>) x=>x != 1 ;
var query = from a in db.FundingTypes where predicate(a.FundingTypeId) select a;
Run Code Online (Sandbox Code Playgroud)