【发布时间】:2016-11-17 05:44:41
【问题描述】:
我使用 Entity Framework 6 作为与 SQL Server 数据库通信的 ORM。插入新记录时有两种情况:
-
记录的GUID为空,此时我添加属性
DatabaseGenerated(DatabaseGeneratedOption.Identity)]在我的 POCO 上我的 ID 字段上方,数据库很乐意为我的记录生成一个新的顺序 GUID。
这种情况最适合索引。我的客户首先与 API 对话,该 API 尝试将记录插入数据库并让数据库生成顺序 GUID。
-
记录的 GUID 已设置,在这种情况下,应在数据库中设置 GUID。但是,EF 忽略了这一点,并要求数据库生成一个新的顺序 GUID。
这种情况是客户端离线或无法访问 API 的情况。在这种情况下,它将使用自己生成的 GUID 在本地持久化数据,然后尝试将其保存到数据库中。
我已经进行了一些搜索,但似乎找不到任何方法来仅在尚未设置的情况下有条件地要求数据库生成新的 GUID。这可能吗?
谢谢!
【问题讨论】:
-
如果找不到更好的方法,一种选择是自己生成顺序 guid(例如:stackoverflow.com/q/211498/5311735)
标签: c# mysql entity-framework