有谁知道我们是否可以在实体框架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