良い一日のみんなを使用して複雑なモデル、私はPOCOクラスで作成しようとしている、と私は非常に多くの異なるアプローチを試してみましたが、訪問した、非常に具体的なデータモデルを持っているEntity Frameworkの - コードファースト
非常に多くのウェブサイトが、私の具体例をカバーするものはありません。
私はこれをそこに投げ捨てて、誰かが私を助けることを願っています。
私には製品があり、製品には成分があります。しかし、私たちのビジネスでは、これらの製品は、それぞれ異なる原料を使用して、それぞれ異なるベンダーから供給される可能性があります。
だから私は私の基底クラスを持っている:
public class Product
{
public int ProductID { get; set; }
public string ProductNumber { get; set; }
public string Description { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}
public class Vendor
{
public int VendorID { get; set; }
public string Name { get; set; }
public virtual ICollection<Supplier> Suppliers { get; set; }
}
public class Ingredient
{
public int IngredientID { get; set; }
public string Name { get; set; }
}
public class Supplier
{
public int SupplierID { get; set; }
public virtual ICollection<Product> Products { get; set; }
public virtual ICollection<Vendor> Vendors { get; set; }
}
あなたが見ることができるように、私の成分が特定のベンダーから来るので、私は、限り私のモデルが参加するエンティティを必要としていることを実現するように得ています製品については、サプライヤと呼ばれる参加エンティティが必要です(私は思っています)。
これは私が立ち往生している場所です...私の製品は、1社以上のベンダーから提供されます。製品ごとに各ベンダーは、その製品の成分のリストを持っています
私は参加エンティティが必要かどうかは、私も過去を過ぎることはできません。私はこの(または似たような)のようなデータ構造をナビゲートすることができれば素晴らしいだろう何
されました:またしても
articles[1].Vendors[3].Ingredients;
、私はこれが可能であるかどうかを知るためにEntity Frameworkのについて十分に知りません。
私がやっているやり方は、今は...間違っていると感じます。私がやりたいことをする正しい方法は何ですか?私は結合表が必要ですか、何らかの形で製品のベンダーのための材料をナビゲートすることができますか?おそらくモデルビルダーを使用して製品 - >ベンダー - >成分リンクが必要になりますか?
ご協力いただければ幸いです!
編集: また、私はEntity Frameworkの関係のアイデアについて十分に理解していないと思います。
したがって、1つの製品に複数のベンダーが存在する可能性があります。これは1対多の関係です。しかし、ベンダーは多くの製品を持つことができます。これは実際には多対多ですか?
私はSQL Expressサーバーで何をしたいのかを明確にモデル化できますが、本当にEntity Frameworkを使いたいと思います。私はモデリング要件をよりよく理解する必要があります。
'Product'、' Supplier'と 'Ingredient'の間に三項関係があるようです。それが正しいか? – Eranga
私は3者関係を検索しなければならなかった...しかし私はそう信じています。 'Product'は常に1対多の' Suppliers'(ベンダー)を持ち、 'Supplier'はその製品に1対多の'原料 'を持ちます。また、私は、むしろ成分セットを運び、特定の製品のサプライヤーに成分セットを関連付けるべきかどうかも疑問に思っています。 – Tiny