環(huán)境:
.NET5.0
VS2019 社區(qū)版
創(chuàng)建以簡單的控制臺應(yīng)用奶躯。使用Code Frist,
功能簡單的一對多的數(shù)據(jù)更新乘瓤。
Database operation expected to affect 1 row(s) but actually affected 0 row(s).
Data may have been modified or deleted since entities were loaded.
See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
遇到這個(gè)問題在網(wǎng)上一搜全是關(guān)于并發(fā)的問題蜈缤。搞得很嚴(yán)重似的,如圖:報(bào)錯(cuò)代碼
image.png
為了驗(yàn)證不是并發(fā)問題我特意將子表的數(shù)控制在一條數(shù)據(jù)夫植。結(jié)果還是報(bào)同樣的錯(cuò)誤“颜樱【吐血】
沒辦法各種查EFCore 關(guān)于并發(fā)的問題,結(jié)果徒勞吁伺。
排除了并發(fā)問題開始頭大了智政,徹底沒招了。
只能硬著頭皮看代碼一定是代碼哪里有問題箱蝠。查看完代碼發(fā)現(xiàn)沒問題唯一感覺可以調(diào)整的就是圖中標(biāo)記的。
嘗試將context.Tickets.Add(Ticket) 放到 SaveChanges() 前面再次運(yùn)行垦垂。ok宦搬!
至于背后的原因暫沒細(xì)究,先把這個(gè)坑填了劫拗!