4

こんにちは

ADO.NETエンティティモデルをデータレイヤーとして使用することの長所と短所は何ですか?また、このテクノロジーを使用する場合は、LINQを使用する必要がありますか?

ありがとう

4

2 に答える 2

6

まず第一に、Entity Framework(EF)を使用するためにLINQを使用する必要はありませんが、それは確かに役立ちます。EFはEFチームがエンティティSQLと呼ぶものに基づいているため、LINQ to Entitiesを使用すると、LINQ式がエンティティSQLに変換され、データベースが使用するSQLダイアレクトに変換されます(T-SQL for SQLサーバー)。

ほとんどの人がEFを特に好きではないので、EFの長所と短所は少し物議を醸す主題ですが、私はそれを中立に保つように努めます。

長所

  • LINQ to SQL(L2S)とともに、LINQ to Entities(L2E)およびEFは、現在Microsoftが提供する最高のデータアクセスAPIです。それらのすべての欠点にもかかわらず、ほとんどのシナリオで「従来の」ADO.NETよりもはるかに優れています。
  • L2Sはよりシンプルですが、L2EはMicrosoftのデータアクセスAPIの将来としてタグ付けされているため、主流のMicrosoft APIスリップストリームにとどまりたい場合は、L2Eを使用する必要があります。L2Sには多くの新しい開発が見られるようには見えません。
  • EFは、.NET4の機能と柔軟性を大幅に向上させます。

短所

  • EFでの作業は難しいです。スキーマの変更に関してはかなり脆弱であり、基礎となるスキーマが変更されたときにそれを更新するのは雌犬です
  • EFによって生成されたT-SQLはひどいものです(ただし、これは.NET 4で変更されるはずです)
  • 永続性の無視は不可能です(.NET 4まで)
  • 多くのLINQメソッドが実装されていないため、APIは見た目よりも制限されています。
  • APIは希望するほど柔軟ではありません

つまり、BCLにベイクされたものだけを使用できる場合、または.NET 4を使用している場合は、試してみてください。そうでなければ、オープンソースライブラリの形でより良い選択肢があります。

于 2009-12-08T14:53:50.943 に答える
0

ADO.NETに関するプロの意見をいくつか紹介します。私はまだ短所を見つけていません。編集:そして短所を含むADO.NETについてのいくつか:ここに

LINQについて:LINQの使用を強制する人は誰もいませんが(おそらく雇用主を除いて)、ADO.NETと組み合わせると確かにメリットがあります。参照:ここ

たくさんのリンクで申し訳ありませんが、C/Pへのテキストがたくさんあります。幸せな読書 :)。

于 2009-12-08T14:46:16.053 に答える