gpt4 book ai didi

使用带有本地数据库文件 (Sdf) 的 Entity Framework 生成 C# 整数主键

转载 作者:太空狗 更新时间:2023-10-29 23:42:17 25 4
gpt4 key购买 nike

我正在编写一个独立的应用程序,我想使用 Entity Framework 来存储我的数据。

目前应用程序很小,所以我可以使用本地数据库文件开始。

问题是本地数据库文件没有像 SQL Server 那样自动生成整数主键的能力。

在创建表时将 ID 列定义为“identify”没有问题,但在尝试调用 SaveChanges 方法时会抛出以下异常:

{“SQL Server Compact 不支持服务器生成的键和服务器生成的值。”

对于如何在将来与 SQL Server 兼容的本地数据库文件中管理实体的主键有什么建议吗?

谢谢, 罗尼

最佳答案

对于数据库没有自动编号的情况,我可以想到三种通用技术。

1) 先做 MAX(ID_column)+1 得到下一个 ID 值。但是,您需要注意此处的多用户问题。此外,这些数字不是一次性使用的。如果您删除一行并添加一个新行,您将获得相同的 ID。这对您来说可能是问题,也可能不是问题。

2) 使用 GUID。几乎可以保证是唯一的,但 ID 列的占用空间很大。

3) 使用一个单独的 key 表来保存最后分配的 ID。这确保数字永远不会被重复使用,但会在您的数据库中添加一个额外的表。

关于使用带有本地数据库文件 (Sdf) 的 Entity Framework 生成 C# 整数主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2964414/

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