我有一个对象模型我使用EF 4.2持久化到SQL Compact数据库。我的一个类有一个标志,用于确定对象是否被修改。如果对象从未从其默认值更改,我不希望将其保存到数据库中。有没有办法我可以配置DbModelBuilder
基于此属性抛出对象(它是一个bool)?我正在考虑的另一个选项是覆盖DbContext.SaveChanges
,如果没有修改对象,只需从DbSet
中删除对象。建议?
答案 0 :(得分:2)
如果未修改附加对象,则不会将其保存到数据库。 DbContext
有自己的更改跟踪机制,不会使用您的自定义属性。
答案 1 :(得分:0)
为什么不将它添加到您的业务逻辑中?我的意思是,EF为什么要处理这个?它可以很简单:
if myObj.WasModified
context.SaveChanges()
else
do nothing
更不用说如果对象未被修改,EF将不会做任何事情