0

我几乎整天都在为 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让我有点担心。也许我试图以错误的方式保存数据,但我花了很多时间在谷歌上搜索,这似乎是正确的方式。

4

0 回答 0