我希望通过 Entity Framework 6 Code First,使用 newid() 来设置 SQL 数据库表的主键默认值。
我知道如何在代码中进行操作,并在 stackoverflow 上找到了一些方法,例如 How to set NewId() for GUID in entity framework。
但是:我有一个备份/恢复机制,它不是通过对象而是直接作为块插入到数据库中。因此,在 SQL 数据库中插入具有 null 作为 guid 的行将失败。
可以添加注释来解决这个问题。
这将成功地将NEWSEQUENTIALID()添加为默认值,它与newid()执行的操作类似(它添加一个新的guid,该guid高于最近的guid,因此您在输入中获得有序性能)。但是,由于这是一个已经存在且没有EF的数据库,所以我希望尽可能少地进行更改。因此,我对NEWSEQUENTIALID()不是很满意。我更喜欢它仍然只是newid()。但是,在Entity Framework 6 Code First中,我没有找到任何关于newid()的注释/映射。并且按照设计,所有对数据库的更改都必须通过代码完成。请问是否有人知道如何通过代码将默认值newid()添加到行中?谢谢!
但是:我有一个备份/恢复机制,它不是通过对象而是直接作为块插入到数据库中。因此,在 SQL 数据库中插入具有 null 作为 guid 的行将失败。
可以添加注释来解决这个问题。
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public Nullable<Guid> Entity_OID { get; set; }
这将成功地将NEWSEQUENTIALID()添加为默认值,它与newid()执行的操作类似(它添加一个新的guid,该guid高于最近的guid,因此您在输入中获得有序性能)。但是,由于这是一个已经存在且没有EF的数据库,所以我希望尽可能少地进行更改。因此,我对NEWSEQUENTIALID()不是很满意。我更喜欢它仍然只是newid()。但是,在Entity Framework 6 Code First中,我没有找到任何关于newid()的注释/映射。并且按照设计,所有对数据库的更改都必须通过代码完成。请问是否有人知道如何通过代码将默认值newid()添加到行中?谢谢!