我的SQL表包含一个数据类型为uniqueidentifier
的Id列。根据SO上的建议,我已将其设置为默认值(newid())
。在实体框架中使用GUID时出错
使用实体框架4.2的代码首先,我再映射到我的GUID属性的相关领域中的SQL:
[Key]
public Guid Id { get; set; }
但是,每当我尝试插入我收到以下异常的实体:
其中一个主键值的类型与实体中定义的类型不匹配。
参数类型'Edm.Guid'和'Edm.String'与此操作不兼容。
我在这里和Google上找到的唯一解决方案是在我的ID上添加[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
作为数据注释。这不会改变一件事 - 那么还有什么可能导致这个错误?
在此先感谢。
谢谢@Siva。如果我错了,请纠正我,但我相信这不适用于我的情况,因为我先使用不使用.edmx文件的代码。 – Jonathan
你有没有尝试设置GUID可空即'的GUID?'将有guid.Empty的默认valud({} 00000000-0000-0000-0000-000000000000)和EF可能试图因为它不是插入该值空值。 –
显示导致问题的代码并为您的数据库表创建脚本。 –