私は一部にガイドとしてthis役立つ記事を使用して、コンパイルクエリにSQLにいくつかの既存のLINQを転換に取り組んでいます。以下は 通常とコンパイルされた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)));
私は標準の違いを視覚化するいくつかの問題を抱えているが、このクエリのインカネーションをコンパイルします。私の構文が適切であると仮定すると、コンパイルされたクエリは、コンパイルされたクエリを使用する利点だけで、標準のものと同じデータを返しますか?