如何使用实体框架代码优先防止对象持久化
本文关键字:对象 持久化 何使用 实体 框架 代码 | 更新日期: 2023-09-27 18:19:16
我有一个对象模型,我使用EF 4.2持久化到SQL Compact数据库。我的一个类有一个用于确定对象是否被修改的标志。如果对象从未从其默认值更改,我不希望将其保存到数据库中。是否有一种方法,我可以配置DbModelBuilder
抛出基于此属性的对象(它是一个bool)?我正在考虑的另一个选项是覆盖DbContext.SaveChanges
,如果对象未被修改,则从DbSet
中删除对象。建议吗?
如果附加的对象没有被修改,它将不会被保存到数据库。DbContext
有自己的变化跟踪机制,它不会使用您的自定义属性。
为什么不将其添加到您的业务逻辑中呢?我的意思是,为什么英孚要处理这个问题?它可以像这样简单:
if myObj.WasModified
context.SaveChanges()
else
do nothing
更不用说如果对象没有被修改EF将不会做任何事情