Използвайки Entity Framework не мога да накарам чуждия ключ да се промени, когато го направя db.SaveChanges()
.
В примера по-долу "Поздрави" е чужд ключ в модела "човек".
Например, ако е в момента {"Id":2,"Name":"Mrs"}
, ако вляза {"Id":3,"Name":"Mr"}
, която вече съществува, няма да се промени, макар да влизам {{"Id":3,"Name":"Random"}
, той ще се промени и ще актуализира чуждия ключ. То ще се промени само ако има действителни промени в съдържащите се данни, а не само чуждия ключ.
db.Entry(person.FirstName).State = EntityState.Modified;
db.Entry(person.LastName).State = EntityState.Modified;
db.Entry(person.Salutation).State = EntityState.Modified;
try
{
db.SaveChanges();
}....
В този случай "човек" преминава в нещо подобно:
{"FirstName": "Anne", "LastName": "Other","Salutation":{"Id":2,"Name":"Mrs"}}
Всяка помощ би била най-ценна, както бяхзаседнал от това в продължение на месеци и предишната ми публикация не е имала полезни отговори. Също така вижте тази публикация за повече подробности за структурата на първия DB модел и т.н .:
Entity Framework - не актуализиране на референтния модел
Отговори:
0 за отговор № 1След това сменете чуждия ключ
db.Entry(person).State=EntityState.Modified
преди
db.SaveChanges();