2
これは、Entity Frameworkから実行した場合と、直接実行した場合とで異なる結果セットを返す非常に単純なクエリ(単一のテーブルに対して)ですSQL Server Management Studio。最初は私はEFが異なるSQLを生成していると思っていましたが、それを直接SQLクエリに書き直した後もまだ別の結果を返しています。Entity Framework 5.0のクエリ結果は、データベース上の直接SQLクエリと異なります
ワーキング問合せ:
SELECT *
FROM Users
WHERE IsActive = 1
AND IsAdvisor = 1
ORDER BY Initials
失敗コード:
//var query = this.BaseDB.Users.Where(x => x.IsAdvisor && x.IsActive).OrderBy(x => x.Initials);
var query = this.BaseDB.Users.SqlQuery("SELECT * FROM Users WHERE Users.IsActive = 1 AND Users.IsAdvisor = 1 ORDER BY Initials");
return query.ToList(); //this query (either variant, returns the same result set, but is missing values.
何が起こっているすべてのアイデア?ちなみに、私は同じDBに照会していることを確認するために二重チェックを行いました。
SqlQueryを使用するとAFAIR EFはクエリに触れません – Pawel
IsActiveまたはIsAdvisorのブール値のいずれかがありますか? – WillC
'IsAdvisor'と' IsActive'がデータベースの整数である場合、 'x.IsAdvisor'は'もしそれらが整数であれば、 'var query = this.BaseDB.Users.Where(x =>(x.IsActive == 1)&&(x.IsAdvisor)のクエリのint値をチェックするだけです。 (0 == 1))OrderBy(x => x.Initials).ToList(); ' – Ingenioushax