C# SQL Server CE 4.0-未处理DbUpdate异常
我几乎整天都在与SQLServerCE4.0作斗争。当我试图将新记录(实体)保存到数据库时,出现此错误 首先是一个小预览-我通过NuGet安装了SQL Server CE 4.0,并为我的项目创建了一个数据库。然后我创建了实体框架模型层并开始使用它 当我收到此错误时,我的内部异常显示: 无法修改该列。[列名=Id] 我做了一些研究,发现这可能是因为我设置了C# SQL Server CE 4.0-未处理DbUpdate异常,c#,.net,entity-framework,sql-server-ce-4,C#,.net,Entity Framework,Sql Server Ce 4,我几乎整天都在与SQLServerCE4.0作斗争。当我试图将新记录(实体)保存到数据库时,出现此错误 首先是一个小预览-我通过NuGet安装了SQL Server CE 4.0,并为我的项目创建了一个数据库。然后我创建了实体框架模型层并开始使用它 当我收到此错误时,我的内部异常显示: 无法修改该列。[列名=Id] 我做了一些研究,发现这可能是因为我设置了Id属性,所以我对它进行了如下更改: 我已经手动插入了17条记录用于测试,但我怀疑这可能会导致任何问题 所以我想做的是: public ov
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();
}
}
public override void Save()
{
使用(RalBaseEntities ctx=new RalBaseEntities())
{
System.Data.Entity.DbSet mainfointentity=ctx.Set();
MainInfo实体=新的MainInfo();
entity.Manager=txtManager.Text;
entity.Broker=txtBroker.Text;
mainInfoEntity.Add(实体);
ctx.SaveChanges();
}
}
因此,当我尝试执行Save()
方法时,会出现上述错误。我写道,在以前的版本中,应该手动创建id
,但它在v中是固定的。4.0并且根据我在这里显示为图像的设置判断,我不认为有理由只获取一个自动生成的唯一Id
的新记录
我得到的
dbupdateexception
中的Update
一词让我有点担心。可能我试图以错误的方式保存数据,但我花了很多时间在谷歌上搜索,这似乎是正确的方式。您需要指定Id值是在您的模型中存储生成的。您可以更具体一点,我不确定您的确切意思。也许我需要提供一些额外的代码?您是先使用edmx还是代码?如果先编写代码,请将Key属性添加到主键字段i use edmx。我先处理代码,想知道是否应该/可以在我的edmx中手动添加此代码,但决定不应该这样做。