2017-01-30 17 views
0

У меня есть следующая схема:Ошибка при обновлении объектов EF код первого

Schema image

Как правильно обновить объекты с помощью EF кода первого подхода? Когда я пытаюсь сделать это с:

this._context.Entry(foundEntity).CurrentValues.SetValues(entity); 
this._context.Entry(foundEntity).State = EntityState.Modified; 

Он бросает исключение и говорит:

The INSERT statement conflicted with the FOREIGN KEY constraint "FK_dbo.Bets_dbo.Matches_MatchID". The conflict occurred in database "UltraPlay.Betting.Platform", table "dbo.Matches", column 'ID'. 
The statement has been terminated. 

Можно ли передать объект корня и все Чайлдс обновляться? Как правильно сделать это чистым и быстрым?

+0

Можете ли вы показать свою сущность? –

+0

, пожалуйста, поделитесь своим кодом и сообщите, где вы получаете ошибку. –

+0

Я полагаю, переменная «сущность» отсоединена. Это правильно? – jannagy02

ответ

0

Если вы хотите прикрепить элемент с дочерними элементами, необходимо приложить всех дочерних элементов, а также, например,

this._context.Entry(foundEntity).CurrentValues.SetValues(entity); 
this._context.Entry(foundEntity).State = EntityState.Modified; 

this._context.Entry(entity.ChildElement).State = EntityState.Modified; // <-- 

если есть уже.

В противном случае EF предполагает, что дочерний элемент является новым для модели и пытается вставить его (снова).