文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>技术备忘录(Entity Framework 的数据更新)

技术备忘录(Entity Framework 的数据更新)

时间:2010-10-01  来源:安羽.

问题起因:

我们使用Entity Framework更新数据的一般方式:

 ///代码1
TestEntities db = new TestEntities();

usr.UserName
= "username";
usr.IsAnonymous
= false;
usr.LastActivityDate
= DateTime("1990-01-09");
usr.LoweredUserName
= “username”
usr.MobileAlias
= “mobileAilas”;

db.SaveChanges();

此代码段工作正常。

 

///代码2TestEntities db = new TestEntities();


///此处的PostPageModeluser为view页传过来的用户已修改过的Model
[HttpPost]
public ActionResult Edit(aspnet_Users PostPageModeluser)
{
var usr
= db.aspnet_Users.First(u =>u.UserId==PostPageModeluser.UserId);
usr
= PostPageModeluser;
db.SaveChanges();
}

此代码段虽无异常,可用户修改的数据并没提交的数据库中的去。

分析其成因是:实体更新数据库是根据EntityState值的状态,选择合适的方式更新数据库的,因为[usr = PostPageModeluser;]没有改变实体状态对象(EntityState)的值,可代码段1在每个属性(字段)被赋值时EntityState都会被赋以适当的值。注意EntityState对外是只读的。

使用下面这段代码就可以解决

 

...略               
usr
= PostPageModeluser;
db.ApplyPropertyChanges(
"aspnet_Users", usr);

db.SaveChanges();

 

 

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载