我试图在表中插入新行,而不插入身份。我只想插入其他列。我希望自动创建身份。
简化代码:
Table<Class1> customers = db.GetTable<Class1>();
customers.InsertOnSubmit(new Class1 { Prop1 = "test });
try { db.SubmitChanges(); }
catch (ChangeConflictException ex) { }
我收到以下错误:
在以下情况下无法为表'Log'中的标识列插入显式值 IDENTITY_INSERT设置为OFF。
我假设Linq2SQL自动更新所有列。但是我该如何解决呢?我什至试图从类中忽略该列,但随后Linq2SQL告诉我:
无法对“表(Class1)”执行创建,更新或删除操作 因为它没有主键。
答案 0 :(得分:2)
您的属性应具有以下属性:
[Column(Storage="ColumnID", AutoSync=AutoSync.Always, DbType="Int NOT NULL
IDENTITY", IsDbGenerated=true)]
public int ColumnID
如果您的列表在数据库中具有自动标识,请尝试重新创建或更新LINQ TO SQL
数据库上下文。