EF:整数自动递增主键

时间:2018-07-01 18:14:46

标签: c# entity-framework entity-framework-core

以前,我只使用MySQL数据库,对于id字段使用自动递增整数设置是相当标准的。

使用SQLite数据库尝试实体框架,我注意到EF默认使用Guid结构标识符,因此此类字段需要string。结果,我们得到一个标识符,如下所示:

a75d9d3d-6543-44fe-9fb8-f19f411503e5

public class AccountDataModel
{
    /// <summary>
    /// The unique Id
    /// </summary>
    public string Id { get; set; }

    [...]
}

两个问题:

  • 那是为什么?是否有某些特殊原因不使用整数标识符?一个比另一个好吗?
  • EF是否允许使用整数Idenfitiers?如果是这样,如何启用它?

2 个答案:

答案 0 :(得分:2)

只需更改

public string Id { get; set; }

public int Id { get; set; }

,并应将种子的ID字段类型int更改为1。使用EF迁移来查看用于创建表,键和关系的代码。

答案 1 :(得分:1)

如果您希望Id为整数,则应使用类型 int 而不是 string

public int Id { get; set; }

对于Guid,您将使用 Guid 类型。 string 类型很少用于ID列。