0

MS が構成よりも規則を使用することにしたのはなぜですか。

私は非常に大規模なプロジェクトを扱っていますが、すべてのプロジェクトがデータ中心というわけではありません。実際、データ中心のプロジェクトであっても、私のエンティティ クラスには、永続性にとらわれない必要がある多くのカスタム機能があります。

現在の MSM アプローチでは、属性を非永続プロパティに適用する必要があり、その逆ではありません。それがコードファーストのポイントではないでしょうか? 労働者階級の階層を使用し、それを「追加」として互換性のある永続性に変えるには?

ID や主キー プロパティ、外部キーの命名など、いくつかの規則が非常に役立つことは理解しています。しかし、正直なところ、クラス構造がまだない場合、モデル ファーストではなくコード ファーストを使用する開発者が何人いるでしょうか?

4

3 に答える 3

3

クラスで持続性に依存する属性を使用する必要はありません。EF コードは最初にモデル構成を使用してマッピングを定義します。その構成はOnModelCreating、派生した DbContext のメソッドで直接定義するか、エンティティと複合型ごとに個別の構成クラスで定義します。属性は、これらの構成に変換された単なるショートカットです。

于 2012-04-30T15:09:32.027 に答える
2

適切な抽象化を作成している場合、これは IMO の問題ではありません。ビジネスエンティティとロジックをデータエンティティと混合しているようです。リポジトリ パターンに従って永続性エンティティを抽象化する場合、ほとんどの POCO は規則に従う必要があります。永続化レイヤーと非常に結合しているように聞こえるため、アーキテクチャを再評価することをお勧めします。より疎結合のアーキテクチャを作成する場合、これらの規則は理にかなっているはずです。ほんの2セントだけど

于 2012-04-30T14:48:44.667 に答える
1

私は、最初に既存のビジネス オブジェクトにコードを適用して、永続性を無視したアーキテクチャを作成する作業にかなりの時間を割いてきました。このコンテキストで EF を適用する方法は複数あります。ビジネス オブジェクトを属性でドレスアップすることは理想的ではないことに同意します。私たちが過去にやってきたことは、

  1. DAL によって実装される BLL アセンブリに格納されているインターフェイスを定義します。これは、CRUD操作のために上位層によって使用されます
  2. DAL で、EntityTypeConfiguration(of T)を使用してビジネス オブジェクトをマップします。

それは私たちにとって非常にうまく機能し、DALから上位層をうまく切り離しています

于 2012-04-30T15:25:52.920 に答える