我有一个相当大的矿物/维生素定义表(44列)和每个列名,但一个是正确的。我在SQL数据库表中有一个名为[Tryptophan/60]
的列,我需要在我的EF DTO对象MineralDefinition
中表示它:
public class MineralDefinition
{
public int DefinitionId {get;set;}
public string Tryptophan60 {get;set;}
// 43 other minerals/vitamins
}
不幸的是我无法更改数据库中的列。有没有什么方法可以重新映射这一列而不必写出每一列?并且,考虑到它,我如何重新映射该字段,因为它中有/
?
答案 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;
以避免模型更改错误。