简单代码失败并出现错误无法定义两个对象之间的关系

时间:2016-05-01 22:58:36

标签: c# asp.net-mvc entity-framework

以下代码失败,显示错误消息。你能帮我理解为什么吗?我正在拉动实体并在同一个使用语句中进行更改,所以我无法理解为什么不止一个上下文工作?

using (var db = new Context())
{
    Company c = db.Companies.Where(x => x.CompanyId == 1).FirstOrDefault();
    c.Name = "TEST HERE"; 
    db.SaveChanges();
}
  

无法定义两个对象之间的关系,因为它们附加到不同的ObjectContext对象。

修改

以下代码是Company类,它使用不同的上下文来获取产品(我刚刚意识到,这不是我的代码)。我如何解决这个问题,以便我可以更新实体而不用EF试图更新不需要或允许的Products集合,因为它是只读的?

public class Company
{
    [Required]
    public Int32 CompanyId { get; set; }

    [Required]
    public string Name { get; set; }

    public virtual ICollection<Product> Products
    {
        get
        {
            using (var db = new Context())
            {
                return db.Products.Where(c => c.CID == CompanyId).ToList();
            }
        }
    }
}

0 个答案:

没有答案