我正在努力將一些現有的Linq轉換爲SQL,編入編譯查詢,部分使用this有幫助的文章作爲指導。常規和編譯Linq到SQL的等價性?
下面是我原來的語句中的一個例子:
private IQueryable<Widget> GetWidgetQuery()
{
return db.Widgets.Where(u => (!u.SomeField.HasValue || !u.SomeField.Value));
}
這是我在創造一個編譯的查詢嘗試:
private static readonly Func<DBDataContext, IQueryable<Widget>> GetWidgetQuery =
CompiledQuery.Compile((DBDataContext db) =>
db.Widgets.Where(u => (!u.SomeField.HasValue || !u.SomeField.Value)));
我遇到了一些麻煩可視化標準之間的差異並編譯此查詢的化身。假設我的語法是正確的,編譯後的查詢是否會返回與標準查詢相同的數據,只是使用Compiled查詢提供的優勢?