我有一个模型
public class MyEntity
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[Required]
public int Id { get; set; } // Id
[Required]
[Key]
public System.Guid GUID { get; set; }
}
GUID 属性是设计上的 PK,但我有一个 db 生成的 Id 属性,我在代码中使用它来确定对象是否是尚未保存的新对象。
当我使用 Entity Framework 保存此对象时,Id 属性不会像数据库生成的属性通常发生的那样重新填充(尽管通常这些是键)。我必须在数据库中查询对象并手动获取 ID。似乎 EF 只返回填充 SaveChanges 上的 Key 属性。
有什么方法可以让 EF 在这里自动填充 Id 属性?将其设置为键不是一个选项,我有几十个表是对 GUID 属性进行 FK 的,这是有充分理由的。
编辑:我发现包https://entityframework-extensions.net/正在处理我的保存更改。如果我使用标准的 EF savechanges 它可以工作,但不能使用扩展版本。