好的。所以这里是交易。我有两个实体 - “产品”和“零件”。产品由零件组成。而且零件可以在其他产品中重复使用。这些实体之间的关系是多对多的。这一切都很好。
问题是我不能将同一部件两次添加到同一产品中。 EF 似乎强制所有相关实体都是唯一的。考虑以下代码:
var product = context.Create<Product>();
var part = GetSomePart();
Console.WriteLine(product.Parts.Count); // will output 0
// Add a part
product.Parts.Add(part);
Console.WriteLine(product.Parts.Count); // will output 1
// Add the same part again
product.Parts.Add(part);
Console.WriteLine(product.Parts.Count); // will output 1!
好吧,我明白了——避免重复或其他什么。但我需要这成为可能。有没有办法在不创建额外表的情况下执行此操作(告诉 EF 停止强制执行唯一值)?或者解决这个问题的唯一方法是手动添加中间表并自己处理多对多?
在这种情况下,您将必须创建另一个名为“ProductParts”的表,该表将具有唯一标识键,并且可以保存对产品和零件的引用,并且它们也可以是多个。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)