[英]Cascade update in collection Entity Framework 5
我有以下型號:
其中RegisterType的“字段”屬性為IList。
我正在使用Entity Framework 5,我想知道是否可以通過任何方式更新RegisterType對象並進行級聯以自動添加,更新或刪除Fields屬性中的RegisterFields。
我試過了
dbContext.Entry(registerType).State = EntityState.Modified;
dbContext.SaveChanges();
但這沒用。
我正在使用MVC Web項目,因此無法保存從數據庫讀取的第一個對象的狀態。
您需要以與registerType相同的方式設置RegisterField實體的狀態。
dbContext.Entry(registerType).State = EntityState.Modified;
forech (var f in registerType.Fields)
{
dbContext.Entry(f).State = ( f.Id == default(int) ? EntityState.Added : EntityState.Modified);
}
否則,它們都將默認為未修改狀態,並且將被SaveChanges()忽略。
另外,您還需要確保在RegisterTypeId
的每個RegisterField實體上設置RegisterTypeId
,否則在附加registerType時EF會阻塞。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.