13

私は Compact Framework 3.5 を使用していますが、暫定的に Subsonic 3.0 のカスタム ビルドを使用してデータ アクセスを行うことにしました。問題は、私がモデル ファーストの開発に慣れていることですが、DB スキーマを制御し続けることにも関心があります。したがって、ActiveRecord も Repository も私のニーズを満たしていないようです。既存の POCO モデルを使用して、それを既存のテーブルにマップしたいと考えています。私はNHibernateとEntity Frameworkを介してこれを行うことに慣れています。

調査の結果、カスタム QueryMapping を作成して、必要なカスタム マッピングを提供できる可能性があるようです。ただし、この道を歩み始める前に、これが行われている何らかの例を見たいと思います。私はウェブ上で何も見つけられないようで、Subsonic、モデルファースト、およびカスタムの Table-per-Type および Table-per-Hierarchy マッピングの経験について誰かが意見を与えることができるかどうか疑問に思います。

4

1 に答える 1

1

SubSonic 3.0.x 以降:

POCO を使用する場合は、リポジトリ、特に SimpleRepository が必要です。SubSonic は、table-per-type モデルのみをサポートします。SubSonic は継承をサポートしていません。必要な場合は、コーディングする必要があります。ただし、それを引き受ける動機がある場合、それは手の届かないものです。

ただし、SimpleRepository は、(自動) 移行を使用する場合でも、スキーマに対してかなりの量の制御を提供します (POCO ファーストには非常に中毒性があると思います)。プロジェクト サイト (特にhttp://www.subsonicproject.com/docs/Using_SimpleRepository ) の適切なドキュメントを確認してください。属性の使い方に注意してください。新しい属性は簡単に作成でき、カスタム リポジトリ サービス クラスに統合できます。

おそらく、SubSonic の SimpleRepositoryの最も優れた点は、拡張が非常に簡単であることです。私たちのチームはそれをかなり拡張しました (例えば、eager-loading サポートを追加するなど)。とても快適なデザインで、高速で軽量で、それ自体が目立ちません。

何よりも、SimpleRepository + Migrations は適切なスキーマ設計を促進します。SubSonic と戦っている場合は、自分自身を確認する必要があります。ほとんどの場合、あなたはボートを雑草に向けています。

データベースのバージョニング機能がさらに必要な場合は、migrator.netと組み合わせると簡単に勝てます。

SubSonic へようこそ!

于 2011-03-31T01:57:43.520 に答える