使用 Entity Framework 5,给定一个messenger
存在于数据库中的对象,具有位属性published
,在以前的 EF 版本中,我会像这样更新它:
using (var c = new EFContext())
{
Data.Messenger cm = new Messenger { MessageId = messageId };
c.Messengers.Attach(cm);
cm.Published = newPublishedValue;
c.SaveChanges();
}
但是,使用 EF5,如果是,则此方法有效newPublishedValue
,true
但如果newPublishedValue
是false
,则不会对数据库进行任何更改。同样,此模式不会将整数值设置为 0。
这里发生了什么?
更换
c.Messengers.Attach(cm);
和
c.Entry(cm).State = System.Data.EntityState.Modified;
修复了这个问题,但是如果 EF5 不会更新我new Data.Messenger
的默认结构值的属性,那不是让该Attach
方法有点没用吗?
我在这里想念什么?