如何将IDENTITY_INSERT设置为ON?

时间:2009-06-06 15:01:59

标签: asp.net vb.net linq

在第一个我要求管理员删除这篇文章: '怎么样,能-I-使-A-主键-AS-自动增量式-VB净九十五万九千七百八十七分之二千零八#959787' 因为我正面临着评论的问题,当我尝试添加评论时,错误信息很明显:“评论需要50个声望 - 请参阅faq”!

这里我想问一下IDENTITY_INSERT,如何在vb.net 2008中将其设置为ON 发生此错误:http://www.rofof.com/img2/6amojc6.gif

对于我引起的这些问题,我感到非常抱歉。

3 个答案:

答案 0 :(得分:6)

听起来你的Linq to SQL类与你的数据库不同步。你需要更新它们。如果您使用的是内置的visual studio设计器,请从DBML中删除该表,然后重新添加。

主键列的属性应具有如下属性:

[Column(Storage="_TeacherID", 
 AutoSync=AutoSync.OnInsert, 
 DbType="Int NOT NULL IDENTITY", 
 IsPrimaryKey=true, 
 IsDbGenerated=true)]

答案 1 :(得分:1)

如果您想要这样做,您还必须包含表名。

SET IDENTITY_INSERT tablename ON

答案 2 :(得分:0)

好用,

SET IDENTITY_INSERT ON

但必须使用相同的连接(不关闭连接)来执行查询。

顺便问一下,您确定要在标识列中插入值吗?也许你的linq到sql映射不是最新的。如果是这种情况,你可以

  • 从模型中删除表格并重新分配,或
  • 在您的linq中选择sql模型中的字段,并将其属性设置为

    IsDBGenerated = True

    AutoSync = AutoSync.OnInsert