私は Visual Studio 2005 を使用していますが、最近、新しい技術があると聞きました
entity framework
。
私にとって最も重要なことはパフォーマンスです。DataReaderを使用してDBからデータを取得し、それを一般的なリストとして返すことに注意してください..
任意の提案..ありがとうございます:)SqlDataReader
6 に答える
SqlDataReader
と はEntity Framework
、データにアクセスするためのまったく異なる 2 つの方法です。s を使用SqlCommand
すると、自分で SQL クエリを記述できます。などの O/R マッピング テクノロジを使用するEntity Framework
と、リレーショナル データベース構造は、Linq からエンティティにアクセスするなど、アクセスするプロパティを持つオブジェクトにマッピングされます。O/R マッピングのアプローチは速度に関するものではないことに注意してください。
あなたがいる場合VS 2005
。Entity Framework は使えないと思います。そのためには、2008 と .NET 3.5 SP1 が必要でした。Entity Framework にはいくつかの問題があります。Entity Framework を使用する場合。Visual Studio 2010 と .NET 4.0 を使用します。これはより良いオプションになります。
Scott Guからの最新情報
パフォーマンスを検討する場合は、こちらをご覧ください
http://toomanylayers.blogspot.com/2009/01/entity-framework-and-linq-to-sql.html
http://blog.codefluententities.com/2012/06/05/codefluent-entities-performance-comparison/
従来のADO.NET(ORMなし)が最速の方法です。効率が重要な問題である場合は、「SqlDataReader」を使用することをお勧めします。
要件を書き上げ、オプションを特定し、要件にとって意味のあるいくつかのテスト (使いやすさ、速度など) で各オプションを評価し、最終的に決定することをお勧めします。いくつかのスマートな設計と実装の選択により、少なくとも最初は比較的限られた労力でそれらのいくつかを切り替えることさえできるかもしれません.
Entity Framework は確かにオプションです。NHibernate、特にfluent-nhibernateも調査に含めることをお勧めします。幸運を!
Linq to Entities に切り替えたい場合は、VS2010 が必要です。
または、VS2005/2008 のままにして、nHibernate または同様のフレームワークを使用することもできます。
しかし、これらの ORM ツールはどれも (主に) 速度に関するものではないため、適切ではない可能性があります。
ORM フレームワークに切り替える理由は、より OOP アプローチを使用するため、つまり一般的なリストを置き換えるためです。
いくつかのデモ/ウォークスルーを見て、それがあなたに合っているかどうかを判断してください.
クエリを自分で作成することは、自動プロセスのパフォーマンスに勝ります。エンティティ フレームワークはデータ レイヤーをより抽象化し、移植性と可読性を向上させます。