2009-06-02 12 views
3

最近、多くのプロジェクトでLINQ to SQLを使用しましたが、LINQ to Entitiesに移行することに熱心でした。 Microsoftが.NET 4.0以降に移行するにつれ、Microsoftからより多くの投資を受けることになります。LINQからSQLへの移動 - > LINQからエンティティへの移動時に注意すること

これを行う前に、LINQ to SQLにLINQ to Entitiesに含まれていないことが何であるかを知りたいと思っています。私の最初の調査では、ほんの少しの煩わしさが明らかになりました。

  • エンティティへのLINQは、エンティティへSingle()またはSingleOrDefault()
  • LINQをサポートしていないの誰もが知っていますが、非実行されたクエリ

ためにVS2008のIDEで生成されたSQLを検査することはできませんその他の違いは?

LINQ to SQLとLINQ to Entitiesの主な機能を並べて比較することはお勧めしません。人々が遭遇したより微妙な違いについて学びたいと思っています。

+0

私は* - メジャーだけ... –

+0

@Marc - そうです。これらの2つの技術のマーケティングスピリットを網羅した多数の記事があります。 私は技術間で簡単に切り替えるのが遅すぎるまで、通常はプロジェクトでは遭遇しない小さな微妙な違いについて知りたいと思っています。 –

答えて

3

を明示的にロードする必要があり、あなたがのObjectQueryにクエリをキャストしてToTraceString機能をオンにした場合に生成されるSQLを取得することができます。確かに、これはLINQ to SQLの実装ほど簡単ではありません。また、EFには、LINQ to SQLのContext.Logのような優れたロギング傍受オプションはありません。

LINQ to SQLのEFマイグレーションに関するプレゼンテーションは、来週からVS Liveから始まり、すぐにthinqlinq.comのブログシリーズを開始する予定です。最も明白な他のスレッド(http://stackoverflow.com/questions/8676は)微妙な違いをカバーしていない - *これはDUPだったが、私はよく分からないと思っ

ジム

2
  • First/Take/etc; EFでは、(IIRC)注文が必要です。 LINQ-to-SQLは順序なしクエリに対してこれらを受け入れます。
  • 部分式の評価。 Expression.Invokeを使用してカスタムExpression(たとえば、述語)をロールした場合、それは機能しません。 EFはサブ式の使用をサポートしていません(LINQ-to-SQLはサポートしていません)
  • シリアル化;非常に、非常に異なる
  • 関連付けロード; EFでEFと(データベースで構成可能)
  • UDFサポート
関連する問題