我几乎整天都在努力学习SQL Server CE 4.0。当我尝试将新记录(实体)保存到我的数据库时,我收到此错误。
首先进行一点预览 - 我通过NuGet安装了SQL Server CE 4.0,并为我的项目创建了一个数据库。然后我创建了Entity Framework模型层并开始使用它。
当我收到此错误时,我的内部异常说明了这一点:
无法修改列。 [列名= 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
,但是它已经在4.0版中修复了,并且我在这里显示的图像设置判断我没有看到只是为了得到一个新的原因使用自动生成的唯一Id
进行记录。
我得到Update
中的DbUpdate Exception
这个词让我有点担心。也许我试图以错误的方式保存数据,但我花了很多时间用Google搜索,这似乎是正确的方法。