AttachTo方法问题

时间:2011-08-09 07:57:47

标签: c# entity-framework

为了更新实体框架中的记录,我正在尝试这样做。我只是将主键CompanyID和公司CompanyName的名称分配给company,因为我只需要更改公司名称。记录未更新。

using (var myentity= new MyEntities())
{
    myentity.AttachTo("Companies", company);
    myentity.SaveChanges();
}

2 个答案:

答案 0 :(得分:2)

我认为您需要首先附上它,然后才能设置公司名称。

这样的事情:

var company = new Company;
company.CompanyID = yourID;

using (var myentity= new MyEntities())
{
    myentity.AttachTo("Companies", company);
    company.CompanyName = newName;
    myentity.SaveChanges();
}

答案 1 :(得分:1)

这还不够。如果您在附加公司之前指定了CompanyName,则必须告知EF它已更改。否则,您必须在公司附加后分配,以便EF可以跟踪您的变化(@Daniel描述);

using (var myentity= new MyEntities())
{
    myentity.AttachTo("Companies", company);
    ObjectStateEntry entry = myentity.ObjectStateManager.GetObjectStateEntry(company);
    entry.SetModifiedProperty("CompanyName"); 
    myentity.SaveChanges();
}