Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 实体框架-已更改生成的字段/列名_Entity Framework_Ef Fluent Api - Fatal编程技术网

Entity framework 实体框架-已更改生成的字段/列名

Entity framework 实体框架-已更改生成的字段/列名,entity-framework,ef-fluent-api,Entity Framework,Ef Fluent Api,我有一个外键字段,它是由实体框架(6)在运行时生成的。此字段与接口T字段相关。因此,我们最终得到一个名为InterfaceFieldName\u Id的字段-我想将其重命名为TypeFieldName\u Id。我知道如何通过在POCO类中添加FK Id字段来实现这一点,但我不希望这样做 是否有办法重命名此生成的字段名?您可以流畅地指定列名: modelBuilder.Entity<YourEntity>() .HasRequired(c => c.Inte

我有一个外键字段,它是由实体框架(6)在运行时生成的。此字段与接口T字段相关。因此,我们最终得到一个名为
InterfaceFieldName\u Id
的字段-我想将其重命名为
TypeFieldName\u Id
。我知道如何通过在POCO类中添加FK Id字段来实现这一点,但我不希望这样做


是否有办法重命名此生成的字段名?

您可以流畅地指定列名:

modelBuilder.Entity<YourEntity>() 
         .HasRequired(c => c.InterfaceFieldName) 
         .WithMany(d => d.YourColumnName) 
         .HasForeignKey(c => c.FieldName);
modelBuilder.Entity()
.HasRequired(c=>c.InterfaceFieldName)
.WithMany(d=>d.YourColumnName)
.HasForeignKey(c=>c.FieldName);
您可以使用方法重命名模型中未定义的外键:

modelBuilder.Entity<Entity1>() 
    .HasRequired(c => c.Entity2NavProperty) 
    .WithMany(t => t.Entity1NavigationProperty) 
    .Map(m => m.MapKey("TypeFieldName_Id"));
如果要在数据库中为
TypeFieldName
使用不同的名称,也可以这样做:

modelBuilder.Entity<Entity1>().Property(d=>d.TypeFieldName).HasColumnName("TypeFieldName_Id")
modelBuilder.Entity().Property(d=>d.TypeFieldName).HasColumnName(“TypeFieldName\u Id”)

谢谢,我的问题可能写得不太清楚。但是我想重命名存储在数据库中的字段。一切联系在一起的方式都很好。第一部分正是我想要的。我以为映射命令会做一些完全不同的事情,所以从未尝试过。谢谢
modelBuilder.Entity<Entity1>().Property(d=>d.TypeFieldName).HasColumnName("TypeFieldName_Id")