1

ProductPartRecord タイプと ManufacturerPartRecord タイプが必要な場合を考えてみましょう。最初のタイプでは、この部品のメーカーを知る必要があるため、ManufacturerPartRecord タイプのプロパティを使用すると便利です。2 番目のタイプでは、このメーカーが製造する製品を知りたいので、タイプ IList のプロパティがあると便利です。

どうやらそれは1対多の関係です。レコードをレコードに配置するのは悪い習慣ですか?実装に問題があるため、これは可能ですか?

4

1 に答える 1

1

可能です。そして、これがそれを行う方法です:

  1. 移行でProductPartRecordは、タイプがである列をに追加します。名前は、テーブル内の主キーの名前であると想定するint必要があります。ManufacturerPartRecord_IdIdManufacturerPartRecord
  2. 移行内に外部キーを作成します。このように見えるはずですSchemaBuilder.CreateForeignKey("Product_Manufacturer", "ProductPartRecord", new[] { "ManufacturerPartRecord_Id" }, "ManufacturerPartRecord", new[] { "Id" });
  3. モデルクラス内に、ManufacturerPartRecord製品のリストに使用する新しいプロパティを追加する必要があります-public virtual IList<ProductPartRecord> ProductPartRecords { get; set; }
  4. モデルクラス内に、ProductPartRecord製造元を取得するために使用する新しいプロパティを追加する必要があります-public virtual ManufacturerPartRecord ManufacturerPartRecord { get; set; }

これで、製品のメーカーを自動的に取得するように設定する必要があります。その逆も同様です。

これを自動的に行わせたくない場合は、コンストラクターインジェクションを取得IRepository<ManufacturerPartRecord>またはIRepository<ProductPartRecord>経由してリストの取得と保存を自分で処理するサービスクラスを作成する必要があります。

于 2012-11-19T14:37:31.370 に答える