我想通过 Entity Framework 6 Code First 使用 newid() 设置 SQL 数据库中表的主键的默认值。我知道这是如何通过代码完成的,并且还在 stackoverflow 上找到了一些方法,例如How to set NewId() for GUID in entity framework
但是:我有一个备份/恢复机制,它不是通过对象插入数据,而是作为数据库的一个凸起插入数据。所以这里没有使用实体框架。这意味着将在 SQL 数据库中插入以 null 作为 guid 的行并失败。
可以添加注释
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Nullable<Guid> Entity_OID { get; set; }
这将成功添加 NEWSEQUENTIALID() 作为默认值,它与 newid() 执行类似的操作(它添加了一个高于最近 guid 的新 guid,因此您赢得了性能,因为您在输入中有订单)。但是因为这是一个已经存在而没有 EF 的数据库,所以我想尽可能少地进行更改。所以我对 NEWSEQUENTIALID() 并不十分满意。如果它仍然只是 newid(),我宁愿喜欢它。但是我在 Entity Framework 6 Code First 中没有找到 newid() 的任何注释/映射。根据设计,对数据库的所有更改都必须通过代码完成。有谁知道如何通过代码将默认值 newid() 添加到行中?
提前致谢!