[英]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.