C# SQL Server CE 4.0-未处理DbUpdate异常

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

我几乎整天都在与SQLServerCE4.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();               
            }
}
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中手动添加此代码,但决定不应该这样做。