有誰知道我們是否可以在實體框架4.1代碼優先的情況下排除列更新?例如,我有'CreatedOn'字段,我不想在編輯/更新時添加。這是可能的,即有選擇地排除EF Code First 4.1中更新操作的字段?從實體框架4.1中更新排除列代碼優先
回答
如果您使用的是附加實體,則EF只會爲已更改的字段生成更新。如果您正在使用分離的實體,則必須手動說出EF發生了什麼變化。如果你這樣稱呼:
context.Entry(yourEntity).State = EntityState.Modified;
你是在說EF所有的屬性都應該被修改。但是,如果你不是叫這個:
context.Entry(youreEntity).Property(e => e.SomeProperty).IsModified = true;
你會說,只有SomeProperty
被修改(僅此屬性將在更新)。我不確定是否可以通過將整個實體標記爲已修改並選擇不應該修改的屬性來進行反向操作,但是您可以自行測試。
如果您的數據庫中填寫了您的CreatedOn
,您可以將其標記爲DatabaseGeneratedOption.Identity
,它將永遠不會被您的應用程序修改。
有沒有辦法從select中排除列?我有一個'User'實體,並且我希望按需要選擇'Password:varbinary(32)'列,這可能嗎? – Shimmy 2012-02-07 01:43:36
反向操作也起作用(至少在我測試過的EF5中)。這意味着您可以先調用'context.Entry(yourEntity).State = EntityState.Modified',然後調用'context.Entry(youreEntity).Property(e => e.SomeProperty).IsModified = false'來更新所有除了手動排除的列以外的列。 – 2013-02-28 13:49:57
@FlorinDumitrescu:是的,這在EF5中使用.NET 4.5,但不使用.NET 4.0。 – 2013-02-28 14:16:21
- 1. 在實體框架代碼優先4.1
- 2. 實體框架4.1 RC(代碼優先) - 實體沒有通過關聯更新
- 3. 排除從實體框架4代碼優先
- 4. 實體框架4.1代碼優先KeyAttribute作爲非標識列
- 5. 使用實體框架4.3更新實體 - 代碼優先
- 6. 更新實體框架中的外鍵關聯4.1代碼優先
- 7. 實體框架4.3 - 代碼優先 - 更新列表屬性
- 8. 從實體框架中的NotMapped類派生實體類4.1代碼優先
- 9. 實體框架中的多重結果4.1代碼優先
- 10. 實體框架4.1代碼優先:單列外鍵到多個實體
- 11. 實體框架 - 代碼優先,DbSet.Local不在UI中更新
- 12. 實體框架4.1代碼優先映射問題
- 13. 實體框架4.1代碼優先凍結
- 14. 域驅動的設計和實體框架4.1(代碼優先)
- 15. 實體框架4.1代碼優先約定混亂
- 16. 實體框架4.1代碼優先 - 控制渴望加載
- 17. 輸出創建SQL實體框架4.1代碼優先
- 18. 實體框架4.1代碼優先與N層保存雙重
- 19. 關閉臨時身份 - 實體框架4.1代碼優先
- 20. 實體框架 - 代碼優先 - 更新不會更改外鍵
- 21. 實體框架端口從模型優先到代碼優先
- 22. 實體框架建模代碼優先
- 23. 實體框架代碼優先使用
- 24. 實體框架代碼優先映射
- 25. 實體框架,代碼優先和datetimes
- 26. 與實體框架代碼優先
- 27. 映射實體框架「代碼優先」
- 28. 實體框架代碼優先 - 界面
- 29. 實體框架 - 代碼優先Fluent API:ErrorMessage?
- 30. 實體框架代碼優先的NullReferenceException
你最終如何解決這個問題?答案只提供建議。 – 2011-05-31 22:18:45