EF 4.1 null插入的GUID,该GUID不是null



我不断遇到此错误:

无法将值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建议的更改和实体的其他更改中恢复。

最新更新