[英]Inserting Entity into SQL Compact 4 Table with Identity column using LINQPad
我正在尝试使用 LINQPad 将新记录插入到 SQL CE 4 数据库中,并且遇到表的身份问题。 假设我有这个简单的表格,例如:
PEOPLE
Id int IDENTITY(1,1) NOT NULL,
Name nvarchar(100) NOT NULL
我可能以错误的方式做事,但我在 LINQPad 中尝试过
People person = new Person { Name = "Bob" };
People.InsertOnSubmit(person);
SubmitChanges();
但我得到一个 SqlCeException 说明
"The colum cannot be modified. [ Column name = Id ]"
我可以用 SQL 插入一条记录就好了,这在 SQL CE 或其数据提供者和 SQL CE 中没有错误的情况下工作,我想为我设置 Id 列是什么
INSERT INTO PEOPLE (Name) VALUES ('Bob');
我还缺少另一个步骤吗? 我什至不确定它是否是 LINQPad 问题,但我想我还是会问,因为这就是我现在正在尝试使用此代码的原因。
如果你在 LinqPad 中运行它,你会得到什么
(from dm in this.Mapping.GetTable(typeof(People)).RowType.DataMembers
select new { dm.DbType, dm.Name, dm.IsPrimaryKey , dm.IsDbGenerated }
).Dump();
特别是,据我了解, IsDbGenerated 对于 id 列应该是正确的。
我有一个 SQL CE 3.5 数据文件,我以前在 LinqPad 中使用过,并查看为插入生成的 SQL 它没有提到 id
这可能是 dbml 文件的问题。 检查该列是否标记为标识(或在 L2S 中调用的任何内容)。 问题是 Id 不能出现在插入查询中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.