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