1. 程式人生 > >EF執行SQL語句 結果和直接在Sqlserver中執行結果不一致

EF執行SQL語句 結果和直接在Sqlserver中執行結果不一致

enume 出了 text con query context png syn raw

先說問題

直接執行sql的結果技術分享

var result = base.Context.Customers.SqlQuery(sql);

 技術分享

技術分享

sql 語句是打斷點取得的,連接的也同是一個數據庫 ,但是結果不一致

用SqlDataAdapter把數據取到DataSet 中也是正確的

技術分享

所以可以排除sql 語句有問題

雖然找出了一個解決辦法,但是在這裏加一個DataSet太醜陋了,雖然規避了問題

然後換了一個EF直接執行sql的方式

 var result = base.Context.Database.SqlQuery(typeof(Customer), sql).GetEnumerator();

這個方法取得的數據就是正常的,只是返回的是一個 DbRawSqlQuery 對象,

GetEnumerator()或者ToListAsync()處理之後才能獲得IEnumerable<T>對象

雖然繞過了問題,但是並沒有找到發生問題的原因,如果有大神知道還望賜教

EF執行SQL語句 結果和直接在Sqlserver中執行結果不一致