Когда вызывать Context.SaveChanges - PullRequest
1 голос
/ 18 мая 2011

Я использую Entity Framework. Одна из моих сущностей (MyEntity) имеет зависимость от «ключа», который я получаю, выполняя хранимую процедуру, которая находится за пределами области действия MyEntity (на самом деле она даже не существует в том же контексте, ее вызов отдельной сборки). как только я получаю этот «ключ», я выполняю и некоторые другие действия (по сути, устанавливаю другие свойства MyEntity), затем вызываю context.SaveChanges () для сохранения изменений.

Мой вопрос ... нормально ли вызывать Context.SaveChanges () дважды? Как только у меня есть «ключ» и еще раз после того, как я установил другие свойства MyEntity? Причина, по которой я спрашиваю, состоит в том, что, получив «ключ», я должен связать его с текущим экземпляром MyEntity, с которым я работаю, иначе я получу дубликаты / сироты. И если что-то происходит и другие свойства объекта MyEntity не сохраняются, то это не фатальная проблема.

Да, я знаю, в идеале это было бы сделано за одну транзакцию, но у нас не всегда такая роскошь: (

Спасибо!

Ответы [ 2 ]

2 голосов
/ 18 мая 2011

Я не вижу проблем с этим. Но вы должны будете не забыть установить myEntity.State = EntityState.Modified после первого сохранения.

1 голос
/ 18 мая 2011

Игнорируя проблемы с этой системой, которые вы сами отметили, не должно быть проблем с двойным вызовом SaveChanges ().

...