Entity Framework PK名称

Entity Framework PK Name

我首先使用 entity framework 6.0 代码。

我需要连接到由 Microsoft Access ODBC 创建的数据库 table。

当我尝试连接到 table 时,收到关于 PK 名称的错误。

Entity Framework 创建名称为 PK_dbo_TABLENAME 的 PK,这会导致 Microsoft Access 出现问题。如果我重命名它,就没有问题。

如何将不同的名称强制设置为 entity framework 键?

我在数据注释语法中搜索但没有结果。

谢谢。

如果您说您的列名称与您正在使用的 属性 不同(即 TableIDId),您可以使用 [Column()] 属性覆盖名称:

[Column("GeoLocationDetailId")]
 public Guid Id { get; set; }

如果您指的是无法识别您的主键的模式,您可以在该 属性 上添加 [Key] 属性,它会选择它:

    [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
    public Guid Id { get; set; }

如果您使用的是模型配置,则可以像使用 [Key] 属性一样使用 HasKey 方法:

        modelBuilder.Entity<GeoLocationEntity>()
            .HasKey(e => e.Id)

最后,我从 Sql Management Studio 手动重命名 PK。