【问题标题】:AutoGenerate Identity Negative PK in EF4在 EF4 中自动生成身份否定 PK
【发布时间】:2026-01-28 07:20:03
【问题描述】:

我正在使用 EF 4.4.0.0 和以下自定义方法来生成身份否定 PK:

    private int? GetMinId()
    {
        return Context.ENTITY.Min(c => (int?)c.Id);
    }

    public int GenerateNegativeId()
    {
        var minId = GetMinId() ?? default(int);

        if (0 < minId) return minId * -1;
        if (0 > minId) return --minId;

        return -1;
    }

您能否解释一下如何自动生成身份否定 PK id。 (有可能吗?)

谢谢

【问题讨论】:

    标签: c# .net-4.0 entity-framework-4


    【解决方案1】:

    这是不可能的,因为身份生成发生在数据库端。为什么需要这个,为什么不能只对行进行排序?

    【讨论】:

    • 谢谢,我需要这个,因为我正在编写将与服务器同步的客户端应用程序。
    • 也许更好的选择是使用 GUID(可以由数据库生成),并将它们用作同步密钥。我们就是这样做的。
    • 我无法更改模型,所以我需要使用int进行PK