2016-06-01 12 views
1

私は、Entity Frameworkを使用していると私は8つのプロジェクトを持っている:条件が評価されていませんか?

IQueryable<Project> projects = _context.Projects.AsQueryable(); 

Boolean? a = null; 

projects = projects.Where(x => a == null); 

var result = projects.ToList(); 

も8つのプロジェクトを持って結果べきではないでしょうか。私は私がやっていることである私のプロジェクトのコードでは何も...

UPDATE 1

取得ん:

var result = projects.Where(x => x.IsActive == query.IsActive || query.IsActive == null); 

だから私はquery.IsActiveがnullでない場合にのみアクティブでフィルタを.. 。

UPDATE 2

私は次のことを試してみました:

var c = await projects.Where(x => true).Select(x => x.Id).ToListAsync(); 

var b = await projects.Where(x => condition == null).Select(x => x.Id).ToListAsync(); 

とクエリました:これは、Entity FrameworkのコアRC2のバグであるとして

SELECT [x].[Id] 
FROM [Projects] AS [x] 
WHERE 1 = 1 

SELECT [x].[Id] 
FROM [Projects] AS [x] 
WHERE @__condition_0 = NULL 
+1

を得るのですか? – sstan

+0

私は 'projects.Where(p => true)'があなたに期待した結果を与えると仮定しますか? –

+0

あなたの 'where'節は意味をなさないでしょう。前の行で 'a = null'を設定し、次の行で' a == null'をチェックします。 – Kaf

答えて

関連する問題