我的Code First项目中有以下架构:
public class MyModel {
public ModelType MType {get;set;}
public string PropA {get;set;}
public string PropB {get;set;}
public string PropC {get;set;}
}
public class MyFirstObj : MyModel
{
public ModelType MType {get;set;} = 1
[Required]
public string PropC {get;set;}
}
public class MyOtherObj : MyModel, IHasPropAB
{
public ModelType MType {get;set;} = 2
[Required]
public string PropA {get;set;}
[Required]
public string PropB {get;set;}
public string PropC {get { return "[${PropA} {PropB}]"}}
}
这按预期工作,我在数据库中有所有3个字段(PropA,PropB,PropC)。但是如果我添加一个新的定义:
public class MyOtherObj2 : MyModel, IHasPropAB
{
public ModelType MType {get;set;} = 3
[Required]
public string PropA {get;set;}
[Required]
public string PropB { get; set;}
public string PropC {get { return "[${PropA} {PropB}]"}}
}
EF生成器在数据库中设置新字段,它在PropA和PropB旁边创建PropA1和PropB1。为什么不同?如何正确映射所有字段?