EF4のC#ラムダ式でブール値を比較する方法はわかりません。Lambda式は、NotSupportedExceptionでbooleanをfalseと比較します。
cl.Where(c => c.Received == false);
と、この:
cl.Where(c => !c.Received);
と、この:私が試した
cl.Where(c => c.Received.Equals(false));
を、私はこのエラーを得続ける:良いを過ごした後
Exception Details: System.NotSupportedException: Unable to create a constant value
of type 'System.Object'. Only primitive types ('such as Int32, String, and Guid')
are supported in this context.
を私はまだ何かが不足しているこれを研究している時間g。私はかなり新しくLambdasだから、pointersが分かるだろう。
EDIT2:より多くのコードの再:コメント
int bar = 42;
var cl = db.foo.Where(c => c.baz.Equals(bar));
//codez (just an if statement)
cl.Where(c => c.Received == false).OrderByDescending(c => c.dateAdded);
それです。私はORDERBYを削除しても、それはまだ
EDIT3を動作しません:
ソリューション:
int bar = 42;
var cl = db.foo.Where(c => c.baz == bar);
cl.Where(c => c.Received == false).OrderByDescending(c => c.dateAdded);
このエラーは、おそらくステートメントの他の部分にあります。呼び出しを行う行の残りの部分とスタックトレースからさらにいくつかのフレームを投稿できますか? – dasblinkenlight
@dasblinkenlightが言っていることは正しいです。最初の2つのメソッドは、EF 4のブール値を比較するために正常に動作します –
すばやい応答のためにありがとう@dasblinkenlight周囲のコードとスタックトレースの一部を追加しました – Eonasdan