Проблема с методом AttachTo - PullRequest
0 голосов
/ 09 августа 2011

Для обновления записи в Entity Framework я пытаюсь это. Я просто назначаю первичный ключ CompanyID и название CompanyName компании на company, потому что мне нужно только изменить название компании. Запись не обновляется.

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

Ответы [ 2 ]

2 голосов
/ 09 августа 2011

Я думаю, вам нужно сначала присоединить его и только после этого установить название компании.

Примерно так:

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

using (var myentity= new MyEntities())
{
    myentity.AttachTo("Companies", company);
    company.CompanyName = newName;
    myentity.SaveChanges();
}
1 голос
/ 09 августа 2011

Это мало. Если вы присвоили CompanyName до присоединения к компании, вы должны сообщить EF, что она изменилась. В противном случае вы должны назначить его после присоединения компании, чтобы EF мог отслеживать изменения для вас как (@Daniel описано);

using (var myentity= new MyEntities())
{
    myentity.AttachTo("Companies", company);
    ObjectStateEntry entry = myentity.ObjectStateManager.GetObjectStateEntry(company);
    entry.SetModifiedProperty("CompanyName"); 
    myentity.SaveChanges();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...