[英]Cannot save many-to-many Entity Framework
我有一個帶有這些實體的簡單的多對多關系數據庫:
public class Product
{
public Product()
{
this.Category = new HashSet<Category>();
}
// just other fields...
public virtual ICollection<Category> Category { get; set; }
}
public class Category
{
public Category()
{
this.Product = new HashSet<Product>();
}
// other fields
public virtual ICollection<Product> Product { get; set; }
}
我正在嘗試保存產品,但是會引發異常:
System.InvalidOperationException:'無法定義兩個對象之間的關系,因為它們被附加到不同的ObjectContext對象。
我的代碼:
public void SaveProduct(Product product, IEnumerable<Category> categories)
{
if (product.ProductID == null)
{
product.ProductID = RandomKeyGeneration();
context.Products.Add(product);
context.Products.Attach(product);
foreach (var cat in categories)
product.Category.Add(cat);
}
context.SaveChanges();
}
我用谷歌搜索並試圖解決此問題,但仍然無法正常工作。
我的上下文類的多個實例引用了一個實體對象類別。 問題出在控制器上,在這里我使用了兩個存儲庫:一個用於產品,另一個用於類別。 在這兩個類中,我都聲明了上下文實例。 因此,聲明了兩個上下文實例,並引發了異常。
這是我的錯和專心。 問題結束。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.