是否可以使用Entity Framework Code First重新映射其中包含特殊字符的单个列?

时间:2010-09-09 09:26:17

标签: entity-framework c#-4.0 entity-framework-4

我有一个相当大的矿物/维生素定义表(44列)和每个列名,但一个是正确的。我在SQL数据库表中有一个名为[Tryptophan/60]的列,我需要在我的EF DTO对象MineralDefinition中表示它:

public class MineralDefinition
{
    public int DefinitionId {get;set;}
    public string Tryptophan60 {get;set;}
    // 43 other minerals/vitamins
}

不幸的是我无法更改数据库中的列。有没有什么方法可以重新映射这一列而不必写出每一列?并且,考虑到它,我如何重新映射该字段,因为它中有/

1 个答案:

答案 0 :(得分:2)

更新

看起来似乎无法仅映射一个列,并且是一个需要请求进入下一个EF的功能。

这应该让你朝着正确的方向前进。您需要将System.Data.Entity.ModelConfiguration用于EntityMap

protected override void OnModelCreating(ModelBuilder modelBuilder) {
    modelBuilder.Entity<Test>().MapSingleType(m => EntityMap.Row(
        EntityMap.Column(m.Tryptophan60, "Tryptophan/60")
    )).ToTable("MineralDefinition");
}

您可能需要添加modelBuilder.IncludeMetadataInDatabase = false;以避免模型更改错误。