我正在创建一个使用GUID作为主键的模型。我自己设置了GUID,然后使用EF将模型保存到SQL Server DB。在调用DbContext.SaveChanges()
期间,GUID已更改。我可以阻止这个吗?
编辑:
无论如何,班级都没有装饰。 Guid由静态构造函数设置:
public class MyEntity
{
public Guid MyEntityId { get; set; }
public static MyEntity CreateMyEntity()
{
return new MyEntity { MyEntityId = Guid.NewGuid() };
}
}
数据库将ID字段限制为PRIMARY KEY CLUSTERED
答案 0 :(得分:1)
可能你有这个:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public GUID GUIDField { get; set; }
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
行告诉EF自己设置GUID值。删除该属性,你就完成了。
答案 1 :(得分:0)
您是否尝试过这样设置您的实体:
public class SomeEntity
{
public SomeEntity()
{
Id = Guid.NewGuid();
}
public Guid Id { get; set; }
}