簡體   English   中英

集合實體框架5中的級聯更新

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM