首页 新闻 会员 周边

在MVC3+Entity Framework的开发中,修改数据提交时发生以下错误

0
[已关闭问题] 关闭于 2012-08-15 23:39

错误信息:

存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项。

 


查了一些资料,说是加隐藏的Key字段,这些都加了,还是报这样的错误,实体类也指定了“[Key]”:

[Table("Article")]
public class Article
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[DisplayName("Id")]
public int Id { set { this._Id = value; } get { return this._Id; } }
private int _Id = 0;

...

 

不知道这是怎么回事,有谁有解决办法没?

youyi000的主页 youyi000 | 菜鸟二级 | 园豆:205
提问于:2012-07-21 14:53
< >
分享
所有回答(2)
0

在修改数据之前,有没有先通过EF从数据库中取出对应的数据,然后修改相应的属性?

dudu | 园豆:30994 (高人七级) | 2012-07-21 15:31

这个是在编辑页面直接返回实体对象的。同样的方法,在MusicStore的例子中是好的,区别可能就是MusicStore里面的关键字不是ID,而是表名+ID的,很是奇怪。

支持(0) 反对(0) youyi000 | 园豆:205 (菜鸟二级) | 2012-07-21 19:10
0

是不是你新增了字段而映射类中没有增加相应的属性造成的呢?还有一种可能会不会你没有给表设定主键。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-07-23 10:10

没有,我用的POCO的模式,设置[Key]属性了。

支持(0) 反对(0) youyi000 | 园豆:205 (菜鸟二级) | 2012-07-25 23:13
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册