【问题标题】:Entity Framework 4 Primary Key as GUID and autogenerationEntity Framework 4 主键作为 GUID 和自动生成
【发布时间】:2010-06-17 15:25:55
【问题描述】:

我正在尝试使用 EF4 以及在服务器端生成 GUID 的所谓新功能。我有一个带有 GUID 主键的表,它的默认值在 SQL Server 中设置为 NewID()。但是,我尝试将 StoreGeneratedPattern 设置为 Identity 和 Computer,但均无效。我在 MSDN 上找到了这个链接,其中包含相互矛盾的信息。有人说应该可以,有人说不行。

http://social.msdn.microsoft.com/Forums/en/adonetefx/thread/72f0045d-1619-4044-bf50-c6eb5091995e

谁能确认这是否应该工作?

【问题讨论】:

    标签: entity-framework


    【解决方案1】:

    如果您设置StoreGeneratedPattern,它在 4.0 中确实有效。它在 3.5 中不起作用。只有在 GUID PK 上有聚集索引时,“低效索引”评论才成立。如果您的聚集索引在其他地方,则为假。

    【讨论】:

    • 那么您应该将 StoreGeneratedPattern 设置为 Computed 还是 Identity?仍然没有运气,在 Identity Int 和 BigInt 字段上工作正常,但在任何 UniqueIdentifier 字段上都是空白。
    • 身份。你改变了SSDL吗?看到这个帖子:leedumond.com/blog/…
    • 是的,我明白了,所以实际上仅使用设计器并不能真正起作用。另一个缺点是您必须始终记住在从数据库中刷新模型后将 StoreGeneratedPattern 放回原处。不是最优秀的解决方案!然而,这些都不是你的错。感谢您为我指明正确的方向。
    • @CraigStuntz 将聚集索引放在别处是什么意思?我有我的表使用 GUID 作为 PK,但只是想确保我做对了以避免低效的索引问题。非常感谢
    • @VAAA 我的意思是“如果您在另一列上有聚集索引,例如标识整数备用键。”
    猜你喜欢
    • 2017-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-06
    • 1970-01-01
    • 2018-10-19
    • 1970-01-01
    • 2018-06-19
    相关资源
    最近更新 更多