4

アプリケーション全体で広く使用する ADO.NET の DbProviderFactory のラッパーを作成しました。IDataReader の行を POCO にマップする多くのコードも作成しました。しかし、私はたくさんのクラスを持っているので、すべてを維持するのが大変です。

シーバン全体をペタポコのようなマイクロオームに置き換えることを検討しています. ただし、いくつかのクエリがあります。

  1. プロパティとして他のPOCOを含むPOCOがたくさんあります。Petapoco はこれをどの程度サポートしていますか?
  2. 動的オブジェクトを返す Massive や Simple.Data などの ORM を使用して、それを POCO にマップする必要がありますか?
  3. 行から POCO へのマッピング全体に対して使用できるアプローチはありますか? データベースの設計方法が特に一貫していないため、規約ベースのツールを実際に使用することはできません。
4

3 に答える 3

0

テキスト テンプレート/コード ジェネレーターを使用して、軽量の永続化レイヤーを構築するのはどうですか? 私は、 TextMetalと呼ばれる、実績のある真のアーキテクチャ上の決定に基づいて必要な永続化レイヤーを生成するための、強化されたオープン ソース プロジェクトを持っています。唯一欠けているのはオブジェクト間の関係ですが、クエリ式をサポートしており、設計が不十分なデータ スキーマでもうまく機能します。

上記のツール呼び出しCan Do It Forを使用する実際のプロジェクトを見ることができます。

ご覧になったら、デザインの決定についてお気軽にお尋ねください。

于 2012-08-21T20:21:45.820 に答える
0

Simple.Data は、その動的型を静的型に自動的にキャストします。.With メソッドを使用して熱心にロードされている限り、ネストされたプロパティをマップします。たとえば

Customer customer = db.Customer.WithOrders().Get(42);

顧客オブジェクトの Orders プロパティを設定します。

于 2012-08-24T16:05:42.113 に答える
0

QueryFirstを使用したり、変更したりできますか? SQL を取得し、設計時に生成されたバニラ ADO コードでラップします。ファイルを保存するたびに、結果スキーマから新しい POCO を取得します。さらに、ツール メニューのオプションを使用して、すべてのクエリをテストし、すべてのラッパーを再生成することを選択できます。これは Sql Server と SqlClient に依存しているため、何らかの変更を加えないと DbProviderFactory が失われます。

于 2016-06-06T15:44:08.160 に答える