我几乎整天都在为 SQL Server CE 4.0 苦苦挣扎。当我尝试将新记录(实体)保存到我的数据库时出现此错误。
首先是一个小预览——我通过 NuGet 安装了 SQL Server CE 4.0,并为我的项目创建了一个数据库。然后我创建了实体框架模型层并开始使用它。
当我收到此错误时,我的内部异常会这样说:
无法修改该列。[ 列名 = Id ]
我做了一些研究,发现这可能是由于我对Id
属性的设置造成的,所以我像这样更改了它:
我已经手动插入了 17 条记录用于测试目的,但我怀疑这可能会导致任何问题。
所以我尝试做的是:
public override void Save()
{
using (RalBaseEntities ctx = new RalBaseEntities())
{
System.Data.Entity.DbSet<MainInfo> mainInfoEntity = ctx.Set<MainInfo>();
MainInfo entity = new MainInfo();
entity.Manager = txtManager.Text;
entity.Broker = txtBroker.Text;
mainInfoEntity.Add(entity);
ctx.SaveChanges();
}
}
因此,当我尝试执行该Save()
方法时,出现上述错误。我写道,在以前的版本中,应该必须id
手动创建,但它在 v. 4.0 中已修复,并且根据我在此处显示为图像的设置判断,我看不出有理由仅仅通过自动生成来获取新记录独一无二的Id
。
Update
我得到的这个词DbUpdate Exception
让我有点担心。也许我试图以错误的方式保存数据,但我花了很多时间在谷歌上搜索,这似乎是正确的方式。