我需要创建一个应用程序与各种传统数据库系统兼容。 因此,数据库存在,但我仍然希望首先使用代码来独立于任何用作数据存储的数据库。对于每个部署,我打算创建一个包含实体的正确FluentAPI映射到数据库的“映射”库。EF CodeFirst映射枚举与自定义值映射
我正在使用EF6。
我不想代码首先,自动将改变数据库中的任何结构,所以我用
Database.SetInitializer<mycontext>(null);
现在我卡在以下问题:
我的代码定义了一个枚举性别,在Person实体中用作属性
public enum Gender
{
M = 1,
F = 2
}
但是,在其中一个遗留数据库中,值是相反的。表“性别”存在,该表中的查找数据是ID 1 =女性,ID 2 =男性。 Person表具有“FK性别ID”列。
如何通过Fluent API将我的Person实体的Gender属性映射到遗留数据库表中的Person表中。
modelbuilder.Entity<Person>()
.Property(c => c.Gender)
.HasColumnName("FK Gender ID") //--> and how to "inverse" these values here ?
这对Fluent API来说是否可能,如果没有,是否有解决方法?
谢谢。
感谢您的回复。我希望在EF映射API中可以存在某种功能来解决这个问题,但是要感谢提供有关可能的解决方法的信息 – tjeuten