私は新しいプロジェクトを開始しており、非常に優れた ORM または非 SQL ベースの永続化レイヤーを探しています。
このプロジェクトでは、妥当な速度で、そして最も重要なこととして単純なクエリでデータをクエリおよび保存できる限り、データがどのように永続化されるかは気にしません。
同時実行性はシームレスに処理する必要があり (フロントエンドは別の層にあり、複数の同時ユーザーが存在しますが、必ずしも同じデータで作業しているわけではありません)、データ層に集中する必要が少なくなります (簡単なクエリ、自動遅延)。ローディングなど)より良い。
また、LINQ をサポートするツールや、直感的で厳密に型指定されたクエリをサポートするツールが大きなボーナスを得られるように、文字列ベースのクエリをいじる必要は絶対に避けたいと考えています。
最後に、POCO オブジェクトを操作することは、私が本当にやりたいことの 1 つです
。これは、私が評価した製品のリストと、それらが適合しない理由です。これらの使用に関するアドバイスは表示されません。
- NHibernate: クレイジーな xml のもの、セットアップが多すぎる、メンテナンスの複雑さとモデル変更のコストが高い、セッション ファクトリが面倒で、私のニーズにうまく適合しない
- Castle ActiveRecord: NHibernate ベースで、ドキュメントがほとんどなく、NHibernate に関連する問題がいくつか残っています。さらに、適切なモデルを取得するには非常に多くの属性が必要になるため、スキーマを手動で作成する方が適切であり、リレーションの処理方法が残念です。
- Linq To SQL: POCO オブジェクトが欠落しており、MS によると、残業時間はあまり改善されません (EF は彼らがコミットしているものです)
- Entity Framweork: v4 では POCO オブジェクトを使用できますが、それでもかなりハックであり、設定に手作業が多すぎます。その上、v4 は単なるベータ版です
- LLBLGen Pro: 特に SelfServicing アダプターの場合は良好ですが、POCO はそうではありません。また、LINQ プロバイダーはまだ完全ではありません。最後に、LINQ を介してオブジェクトのグループを削除することはできません。その結果、API が混在することになり (そのうちの 1 つは直感的とはほど遠いものです)、私はそれが好きではありません。
- XPO: POCO ではなく、直感的で非常に遅い同時実行の問題
- SubSonic SimpleRepository: 数分間、私は夢を見ていると思いました。物事がどのように関係を処理しなかったかを理解したので、ディームは終わりました
私は MongoDB と CouchDB も調べましたが、これらの場合、関連オブジェクトのキャッチは、物事を正しく行う前にあまりにも多くのテストを必要とするように見えました。さらに、厳密に型指定されたクエリを提供するものはありません。
ご提案いただきありがとうございます。