我首先使用带有代码的实体框架 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。