
例如,如果一个表具有ID然后字段,它现在有Company_ID,然后是ID,然后是这些字段.这个想法是,这允许ID为提供给功能的每个不同的Company_ID值自动递增(Company_ID 1可以具有ID 1,2,3等; Company_ID 2可以具有ID 1,3等).
自动增量字段保持为ID.示例表是:
[dbo].[Project]( [Company_ID] [int] NOT NulL,[ID] [int] IDENTITY(1,1) NOT NulL,[DescShort] [varchar](100) NulL,[TypeLookUp_ID] [int] NulL,[StatusLookUp_ID] [int] NulL,[IsActive] [bit] NOT NulL,CONSTRAINT [PK_Project] PRIMARY KEY CLUSTERED ( [Company_ID] ASC,[ID] ASC )
在引入Company_ID之前,要执行CREATE,我们只需填充DescShort,TypeLookUp_ID,StatusLookUp_ID和IsActive字段,并将左ID设置为默认值,可能为0.
记录保存成功,ID由数据库自动填充,然后用于通过VIEw执行SHOW,等等.
然而,现在我们要将Company_ID设置为一个指定的值,留下ID,然后填充这些字段.
_db.Project.Add(newProject); _db.SaveChanges();
是的,我们要指定Company_ID值.我们希望自动填充ID,如前所述.
我们收到错误讯息:
Cannot insert explicit value for IDentity column in table “Project”
when IDENTITY_INSERT is set to OFF
是否由指定Company_ID或ID字段引起?你知道我们如何纠正这个问题?
解决方法 问题在于ID.如果将字段设置为IDENTITY,则通常不能为其指定值 – IDENTITY属性标记为允许数据库自动为列添加递增值.要解决此问题,请从ID中删除自动IDENTITY属性(如果要自动增加它,则可以随时在处理代码中执行此 *** 作 – 在该字段中获取最高值,然后添加一个,然后分配该值)或转到数据库,并在表上设置IDENTITY _INSERT,这暂时允许您将值分配给IDENTITY字段.
SET IDENTITY_INSERT [yourtablename] ON--go back and run your C# code>SET IDENTITY_INSERT [yourtablename] OFF总结
以上是内存溢出为你收集整理的c# – 当使用复合键将IDENTITY_INSERT设置为OFF时,无法在表中插入标识列的显式值全部内容,希望文章能够帮你解决c# – 当使用复合键将IDENTITY_INSERT设置为OFF时,无法在表中插入标识列的显式值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)