错误信息:
存储区更新、插入或删除语句影响到了意外的行数(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;
...
不知道这是怎么回事,有谁有解决办法没?
在修改数据之前,有没有先通过EF从数据库中取出对应的数据,然后修改相应的属性?
这个是在编辑页面直接返回实体对象的。同样的方法,在MusicStore的例子中是好的,区别可能就是MusicStore里面的关键字不是ID,而是表名+ID的,很是奇怪。
是不是你新增了字段而映射类中没有增加相应的属性造成的呢?还有一种可能会不会你没有给表设定主键。
没有,我用的POCO的模式,设置[Key]属性了。