我不断遇到此错误:
无法将值null插入列'ID',表 'database.dbo.employes';列不允许零。插入 失败。 r n该语句已终止。
但是该对象具有Guid.NewGuid()
我使用实体框架4.1和.NET Framework 4.0。
列是主要键,而不是null。我不使用代码第一次方法。
编辑:如果我手动编辑文件EDMX。
,如果您将关键属性标记为模型中的自动化身份,则可以使用流利的API或数据注释...
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
...(具有EF不会将Id
值发送到数据库的效果,因为它希望在此生成密钥),但是在数据库表中,您没有指定Id
的默认值列是newid()
,因此数据库不会生成新密钥。
我想从客户端手动将Guid
值手动发送到数据库中,从模型中删除DatabaseGeneratedOption.Identity
规范。
导致错误的问题是运行自定义工具没有完全更新实体。SQL的插入物可以工作,因此我尝试从Slauma建议的更改和实体的其他更改中恢复。