我有这个数据库
Packages (packageID, package_name , .... )
PackageVariant (packageID, variantID)
Variant (variantID, variant_name, .... )
VariantProduct (variantID, productID, quantity)
Product (productID, product_name, .... )
我已经在实体框架中对其进行了建模,我不知道多重性,但它们应该基于以下:
一个包可以有无或多个变体
一个变体只能与一个包关联(不能是无或多个)
一个变体可以有一个或多个产品
产品与无或多个变体相关联
删除包时,必须删除该包的所有变体。
当一个变体被删除时,不需要删除其他任何东西。
删除产品时,需要删除与变体的所有关联。
如果您可以就多重性以及需要设置 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();
不会因为“没有插入、更新集”或其他任何依赖映射而出现错误。那么如何正确映射这个复杂的数据库会很好:)
我已经阅读了一些帖子,书籍,但似乎找不到答案。
谢谢