实体框架PK名称

时间:2017-05-16 13:32:48

标签: c# entity-framework ms-access-2010

我首先使用实体​​框架6.0和代码。

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

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

实体框架创建一个名为PK_dbo_TABLENAME的PK,它会导致Microsoft Access出现问题。如果我重命名它,没有问题。

如何强制使用不同名称的实体框架密钥?

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

感谢。

2 个答案:

答案 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。