使用 Linq-to-SQL 插入,其中 IDENTITY_INSERT 设置为 OFF
Posted
技术标签:
【中文标题】使用 Linq-to-SQL 插入,其中 IDENTITY_INSERT 设置为 OFF【英文标题】:Insert using Linq-to-SQL where IDENTITY_INSERT is set to OFF 【发布时间】:2018-11-29 19:18:47 【问题描述】:我正在尝试向表中插入新行而不插入标识。我只是插入到其他列中。我希望自动创建身份。
简化代码:
Table<Class1> customers = db.GetTable<Class1>();
customers.InsertOnSubmit(new Class1 Prop1 = "test );
try db.SubmitChanges();
catch (ChangeConflictException ex)
我收到以下错误:
无法在表“日志”中为标识列插入显式值 IDENTITY_INSERT 设置为 OFF。
我假设 Linq2SQL 会自动更新所有列。但是我该如何解决呢?我什至试图从课程中省略该列,但是 Linq2SQL 告诉我:
无法对“表(Class1)”执行创建、更新或删除操作 因为它没有主键。
【问题讨论】:
【参考方案1】:您的财产应具有以下属性:
[Column(Storage="ColumnID", AutoSync=AutoSync.Always, DbType="Int NOT NULL
IDENTITY", IsDbGenerated=true)]
public int ColumnID
如果您的列表在数据库中具有自动标识,请尝试重新创建或更新您的 LINQ TO SQL
DB 上下文。
【讨论】:
谢谢。但我不想插入身份。我希望它自动创建。 谢谢。我会试试的。我假设这是第一个代码的而不是。对吗?IsDbGenerated=true
做到了。谢谢!
@ispiro 很高兴为您提供帮助!:)以上是关于使用 Linq-to-SQL 插入,其中 IDENTITY_INSERT 设置为 OFF的主要内容,如果未能解决你的问题,请参考以下文章