gpt4 book ai didi

c# - 刷新 DB First EDMX 时如何保留 StoreGeneratedPattern 设置?

转载 作者:行者123 更新时间:2023-11-30 16:51:31 25 4
gpt4 key购买 nike

我有一个数据库优先 EDMX,其中一个实体有一个必须设置为 StoreGeneratedPattern = Identity 的属性,以便使用顺序 GUID 作为主键。

这可以正常工作,但是任何时候使用“从数据库更新模型”刷新模型时,该值都会重置为 StoreGeneratedPattern = None,并且必须手动编辑。

这很麻烦,而且是潜在人为错误的重要来源,尤其是在必须更改多个表并且多个开发人员可能对数据库进行更改并根据需要更新 EDMX 的情况下。

我收集到没有简单的方法来保留 StoreGeneratedPattern 值,但是否有不简单的方法?甚至是在 EDMX 更新和编辑 EDMX 时运行的自动脚本?有没有不需要知道所有需要编辑的内容的解决方案?

谢谢

最佳答案

那是因为在 SQL Server 中不可能将 GUID 列设置为自动递增标识。我知道您可以采取一些措施,例如将这个“所谓的”标识列的默认值设置为 newsequentialid() 以自动用 GUID 填充此列,但从技术上讲,此列本身并不是此表的标识列。显然,当 EF 在“从 DB 更新模型”期间生成 EDMX 时,它将此列视为常规列而不是自动递增标识,因此,将您手动编辑的 StoreGeneratedPattern = Identity 覆盖回 StoreGeneratedPattern = None。

这是一个 hack,我强烈建议不要对 EF 自动生成的代码进行任何更改。我见过许多开发人员在为立即补救而这样做时被烧毁,但当它回来并稍后咬他们时,他们希望他们永远不会操纵自动生成的代码。

请注意!!!

关于c# - 刷新 DB First EDMX 时如何保留 StoreGeneratedPattern 设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33788945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com