Я пытаюсь просто загрузить объект, изменить свойство и затем сохранить его обратно в базу данных.Изменение свойства объекта в Entity Framework вызывает ошибку проверки
var db = new NewsletterContext();
var newsletter = db.Newsletters.Find(x => x.ID==newsletterID);
newsletter.SomeProperty = 5;
db.SaveChanges();
Это вызывает ошибку проверки, поскольку есть некоторые свойства объекта информационного бюллетеня, которые необходимы, и, по-видимому, не загруженные, когда я делаю Find()
.
я могу решить эту проблему с помощью Include()
для каждого требуемого имущества с последующим Where()
:
var db = new NewsletterContext();
var newsletter = db.Newsletters.Include(x => x.RequiredProp1)
.Include(x => x.RequiredProp2).Include(x => x.RequiredProp3)
.Where(x => x.ID==newsletterID)
.FirstOrDefault();
db.SaveChanges();
Это не очень элегантное решение и сломается, если добавить еще необходимые свойства для Newsletter
объекта.
Есть ли лучшее решение?
Да, извините, только терминология. RequiredProp1 и т. Д. Являются фактически связанными объектами. Сам объект информационного бюллетеня загружается отлично, и я могу прочитать все свойства, но сохранение обратно вызывает ошибку. – Judo
Код EF 4.1 сначала с .NET 4.0 в приложении MVC 3. – Judo