3

私は Service Stack と OrmLite を初めて使用し、Entity Framework の代替として ORMLite を検討していました。これについて 2 つの質問があります。 - EF が魅力的な理由は、データベース操作とビジネス データ モデルを別々のレイヤーに分離できることです。 - EF は、構成ファイルの接続文字列で指定したものを使用して実行できます。ORMLite は、データベースごとに異なるフレーバーを持っているようです。これは、コードを繰り返し変更する必要がないため、私にとっては懸念事項です。

私は物事を正しく理解していますか?どうか明らかにしてください

ありがとう

スラジ

4

3 に答える 3

3

OrmLite は、 DialectProvider のを使用して、複数のデータベース プロバイダーをサポートします。

基本的に、一部の RDBMS が標準から逸脱し、特別な注意が必要な場合は常に、この機能が Dialect プロバイダーに組み込まれるため、特注の機能を提供し、デフォルトの動作をオーバーライドできます。

于 2013-01-16T00:46:35.953 に答える
2

「データベースにとらわれない」ということはありませんが。製品は標準 (SQL92 など) に準拠している場合がありますが、それはその標準に完全に実装されていることを保証するものではありません。

ドキュメントによると、別のデータベース/バッキング ストアへの接続を設定することは、接続ファクトリで別の接続文字列と方言プロバイダーを設定するだけなので、データベースの変更がそれほど難しくないことを意味します。

公式リストに関しては、これが私が見つけた中で最も近いものでした。

  • SqlLite
  • SQLサーバー
  • MySql
  • PostgreSQL
  • FirebirdSql
于 2013-01-15T14:16:07.677 に答える
0

過去に ORM に取り組んできたので、ORM は実際には「データベースにとらわれない」ものではないと言えます。むしろ、ORM は可能な限りデータベースにとらわれず、通常はターゲット セットを持ちます。リストにないデータベースのサポートを追加するのを手伝ってくれれば、彼らはもちろんあなたを気に入ってくれるでしょう。

たとえば、ORM が NoSQL データベース (Redis、CouchDB など) [しかし不可能ではない]、ネイティブ XML (eXist など)、オブジェクト指向データベース (Zope など) をサポートする可能性は低いです。ほとんどの場合、これらのテクノロジは RDBMS を対象としており、通常はかなりうまく機能します。

これは Java で構築されているため、おそらく多くのオプションがあります。JDBC に接続するものはすべてサポートされるか、拡張の可能性が残されます。

これらのツールの中心では、作成した SQL と関数が解析され、基礎となるデータベースによって消化可能になります。理論的には、任意のデータベースを使用できます。

StingyJack は、サポートされている正確なデータベースを見つけました。MySQL、Postgres、Microsoft SQL Server、H2、Derby、HSQLDB、および Sqlite。

別の機能として、新しいデータベースは通常、コード内のインターフェイスを操作することでサポートできるということを覚えておいてください。したがって、必要なデータベースが表示されない場合は、別のモジュールをコピーして、準拠するまで変更する可能性があります。

これらのツールは標準パターンに従って構築されているため、そのパターンが再適用され、各データベースに適合されます。したがって、そのリストが大きくなるにつれて、新しいデータベースごとに同じサポートが安全に期待できるはずです。

そうは言っても、オープンソース プロジェクトの活動を監視することをお勧めします。十分に活用されていないか、十分に活用されていない場合、成熟した状態に達する前にサポートが終了する可能性があるためです。

この特定の ORM は SQL ベースのように見えるため、拡張サポートが非リレーショナル データベースをカバーするとは思わないでください。

于 2013-01-15T14:20:10.017 に答える