无法将值NULL插入列' Id' (数据库优先)

时间:2016-09-26 20:25:50

标签: c# sql-server entity-framework

数据库优先解决方案。

我使用了两个名为UserProfile的表格。他们都使用uniqueidentifier(SQL Server)作为主键。我允许User自动接收它自己的guid id的方式来自:

  1. 打开我的edmx文件。

  2. 右键单击用户的Guid列 - >属性 - >将StoreGeneratedPattern更改为Identity。

  3. 像魅力一样工作。现在我尝试对Review执行相同操作,但每次尝试创建新行时,我都会收到以下错误:

      

    无法将值NULL插入列' Id',表中   ' xxxx.dbo.Profile&#39 ;;列不允许空值。 INSERT失败。该   声明已被终止。

    如果我没有Identity StoreGeneratedPattern使用Profile Profile,那么它就不会生成一个唯一ID,而只会产生一堆零,如果我尝试,会导致重复错误再次创建一个新行。

    为什么用户工作正常而不是var

    我对这两个表都遵循了本指南guide

1 个答案:

答案 0 :(得分:1)

正如@Gert Arnold在评论中提到的,我忘了在SQL Server中为newsequentialid()表添加Profile。一旦我这样做,我终于能够使用DatabaseGeneratedOption.Identity生成唯一的Guids。

您可以阅读有关此方法的更多信息here。这还包括Code-First的技术。