我首先使用实体框架6.0和代码。
我需要连接到Microsoft Access ODBC创建的数据库表。
当我尝试连接到表时,会收到有关PK名称的错误。
实体框架创建一个名为PK_dbo_TABLENAME的PK,它会导致Microsoft Access出现问题。如果我重命名它,没有问题。
如何强制使用不同名称的实体框架密钥?
我搜索数据注释语法但没有结果。
感谢。
答案 0 :(得分:1)
如果您说您的列名与您正在使用的属性名称不同(即TableID
vs Id
),则可以使用[Column()]
属性覆盖名称:
[Column("GeoLocationDetailId")]
public Guid Id { get; set; }
如果您指的是架构无法识别您的主键,您可以在该属性上添加[Key]
属性,它会将其取出:
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
public Guid Id { get; set; }
如果您正在使用模型配置,则可以使用与HasKey
属性相同的方式使用[Key]
方法:
modelBuilder.Entity<GeoLocationEntity>()
.HasKey(e => e.Id)
答案 1 :(得分:0)
最后,我从Sql Management Studio手动重命名PK。