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 键?
我在数据注释语法中搜索但没有结果。
谢谢。
如果您说您的列名称与您正在使用的 属性 不同(即 TableID
与 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。
我首先使用 entity framework 6.0 代码。
我需要连接到由 Microsoft Access ODBC 创建的数据库 table。
当我尝试连接到 table 时,收到关于 PK 名称的错误。
Entity Framework 创建名称为 PK_dbo_TABLENAME 的 PK,这会导致 Microsoft Access 出现问题。如果我重命名它,就没有问题。
如何将不同的名称强制设置为 entity framework 键?
我在数据注释语法中搜索但没有结果。
谢谢。
如果您说您的列名称与您正在使用的 属性 不同(即 TableID
与 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。