实体框架 PK 名称



我首先使用带有代码的实体框架 6.0。

我需要连接到由Microsoft访问 ODBC 创建的数据库表。

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

实体框架创建名称PK_dbo_TABLENAME的 PK,这会Microsoft访问出现问题。如果我重命名它,没有问题。

如何强制将不同的名称强制为实体框架键?

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

谢谢。

如果你说你的列名与你正在使用的属性不同(即TableID vs Id(,你可以使用 [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。

最新更新