簡體   English   中英

無法保存多對多實體框架

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM