私は本を読んでおり、「データベースへのアクセスにADO.NETを使用して独自のデータアクセスレイヤーを作成する場合、データスキーマが存在するかどうかにほとんど影響を与えません。ただし、Oを使用している場合/ RM、使用するツールによって柔軟性が制限されます」。 ADO.NETと他のORMの主な違いは何ですか?
ADO.NETは、SQL ServerやXMLなどのデータソース、およびOLE DBおよびODBCを介して公開されるデータソースへの一貫したアクセスを提供します。データ共有コンシューマアプリケーションは、ADO.NETを使用してこれらに接続できますデータソースを取得し、それらに含まれるデータを取得、処理、更新します。
ADO.NETは、データアクセスからデータアクセスを、個別にまたは連携して使用できる個別のコンポーネントに分離します。 ADO.NETには、データベースへの接続、コマンドの実行、結果の取得のための.NET Frameworkデータプロバイダーが含まれています。これらの結果は、直接処理されるか、ADO.NET DataSetオブジェクトに配置されてアドホックな方法でユーザーに公開されるか、複数のソースからのデータと結合されるか、階層間で渡されます。 DataSetオブジェクトを.NET Frameworkデータプロバイダーとは別に使用して、アプリケーションのローカルデータまたはXMLをソースとするデータを管理することもできます。
ADO.NETは、DBに接続し、SQL接続、コマンド、パラメーターを使用してDBを変更できるようにするレイヤーです。 ADO.NET MSDN
コンピューターサイエンスのオブジェクトリレーショナルマッピング(ORM、O/RM、およびO/Rマッピングツール)は、オブジェクト指向プログラミング言語の互換性のない型システム間でデータを変換するためのプログラミング手法です。これにより、事実上、プログラミング言語内から使用できる「仮想オブジェクトデータベース」が作成されます。一部のプログラマーは独自のORMツールを構築することを選択しますが、オブジェクトリレーショナルマッピングを実行する無料パッケージと商用パッケージの両方が利用可能です。
Entity Framework
とNHibernate
はORMです。これは、SQL接続、コマンド、パラメーターで操作しないことを意味します。ORMがそれを行い、データベース構造をOOP方法で追加できます。追加、読み取り、更新、削除が可能です。 C#のオブジェクトを使用してDBのレコード。オブジェクトをDBに正しくマップする必要があります。Entity Framework
はADO.NETで構築され、内部でADO.NETを使用します。SQLステートメントはORMによって生成されます [〜#〜] orm [〜#〜]
一般に、ORMを使用しないDBへのアクセスは高速ですが、より多くのコード行を提供する必要があります。 DBをOOPのように操作し、より読みやすいコードを記述する場合は、ORMを選択する必要があります。選択する内容によって目的に応じて異なります。
Micro ORM(Dapper、BLToolkit)を使用すると、SQLクエリを記述し、パラメーターをオブジェクトプロパティにマップできます。一般に、Micro ORMはFull ORMよりもパフォーマンスが優れていますが、ADO.NETは依然として高速です。
また、StackOverflowにはいくつかの質問と回答があります: EF vs ADO.NET
DataSets
およびDataReaders
を使用することを嫌うことを学びましたADO.NET.
_として知られていますObject-Relational Mapper
_を表します。名前が示すように、builds a relation / maps objects (model) to database objects(tables).
ADO.NET
_はアプリケーションをデータベースに接続する従来の方法であり、開発者がデータベース操作を完全に制御できるのに対し、ORM
は_ADO.NET
_の上に構築され、_ADO.NET
_を暗黙的に使用します。ORM.
_によって内部的に処理されるという点で生活が簡単になります。ORM
を使用する場合、すべてのクエリはORM
自体によって生成されるため、すべてが手に入るわけではありません。これらのクエリがoptimizedかどうかはわかりません。アプリケーションのパフォーマンスが主な関心事であり、絶対に重要なシナリオ[〜#〜] or [〜#〜]単に将来アプリケーションが大きくなることがわかっているシナリオでは、お勧めです_
ADO.NET
_ではなく_Entity Framework
_を使用すると、アプリケーションが重くなるためです。
Micro ORM's
_でした。これらは、開発者が望むものの本質を提供します-データベース操作を厳密に型指定されたクラスにマップする簡単な方法。raw speed.
_ですDapper
はマッピングを行うだけですが、多くのコーディングが必要です。EF
はマッピングだけでなく、その上でさらに多くのことを行います。そのため、EFは遅くなります。ADO.NET
_はDapper
よりも高速であり、OLEDB
は_ADO.NET
_よりも高速であり、ODBC
は_OLEDB.
_よりも高速ですORM.
_