私はこのデータベースを持っています
Packages (packageID, package_name , .... )
PackageVariant (packageID, variantID)
Variant (variantID, variant_name, .... )
VariantProduct (variantID, productID, quantity)
Product (productID, product_name, .... )
Entity Framework でモデル化しました。多重度はわかりませんが、以下に基づいている必要があります。
パッケージは、なしまたは複数のバリアントを
持つことができます バリアントは、1 つのパッケージのみに関連付けることができます (なしまたは複数にすることはできません)
1 つのバリアントは、1 つまたは複数の製品を持つことができます
製品は、なしまたは複数のバリアントに関連付けられます
パッケージが削除されると、そのパッケージのすべてのバリアントを削除する必要があります。
バリアントが削除されると、他に削除する必要はありません。
製品が削除されると、バリアントとのすべての関連付けを削除する必要があります。
多重度と OnDelete:Cascade を設定する必要がある場所についてサポートを提供できれば、それは素晴らしいことです!
私もこれを行うことができる必要があります:
var ptx = new MyEntities();
Variant newVariant = new Variant()
{
setRelevantProperty = value
};
Product selectedProduct = ptx.Products.First(o => o.productID == productID);
newVariant.Products.Add(selectedProduct);
Package packageToAddVariantTo = ptx.Packages.First(o => o.packageID == packageID);
packageToAddVariantTo.Variants.Add(newVariant);
ptx.SaveChanges();
「挿入、更新セットがありません」またはマッピングに依存するその他の理由でエラーが発生することはありません。したがって、この複雑なデータベースを正しくマップする方法は良いでしょう:)
いくつかの投稿や本を読んだことがありますが、答えが見つからないようです。
ありがとう