2016-07-12 4 views
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に照会していることを確認するために二重チェックを行いました。

+1

SqlQueryを使用するとAFAIR EFはクエリに触れません – Pawel

+0

IsActiveまたはIsAdvisorのブール値のいずれかがありますか? – WillC

+0

'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

答えて

0

まず、お返事ありがとうございます。これは私の間違いでした。以前の開発者は、特定のレコードの表示プロパティを個別に設定していました:(EFは正しい結果セットを返していました)

関連する問題