不确定这是否可能是EF 6 Code First,但我想我会问。我正在重新分解一些代码并在我的模型中添加一些新对象,这些对象共享一些常见的数据和功能。
例如:目前我有以下哪个EF 5或6没有问题
//Sample Interface
public interface IMyObject {
string MyName{get;set;}
}
//Sample base class
public abstract class MyMathBase{
public int Value1{get;set;}
public int Value2{get;set;}
public virtual decimal AddValues(){
returns Value1+ Value2;
}
public virtual decimal MinusValues(){
returns Value1 - Value2;
}
}
MyMathObject : MyMathBase,IMyObject {
public string MyName{get;set;}
public MyMathObject(){}
}
现在我需要为我的朋友添加一个具有相同功能的对象
//Please refer above for interface
//Sample base classes
public abstract class MySubractionBase {
public int Value1{get;set;)
public int Value2{get;set;)
public virtual decimal MinusValues(){
returns Value1 - Value2;
}
}
public abstract class MyMathBase : MySubractionBase {
public virtual decimal AddValues(){
returns Value1 + Value2;
}
//re-factored out the MinusValues method to illustrate how I need to re-factor out some
//functionality
}
MyMathObject : MyMathBase ,IMyObject {
public string MyName{get;set;}
public MyMathObject (){}
}
//My friend only needs to substract
MyFriendsMathObject : MySubractionBase ,IMyObject {
public string MyName{get;set;}
public MyFriendsMathObject (){}
}
显示我应该可以打电话 MyMathObject.AddValues(1,2) MyMathObject.MinusValues(2,1)
和
MyFriendsMathObject.MinusValues(3,4)
不必在两个对象中复制AddValues()方法,它只应该在需要它的对象中。
EF 6是否允许我映射这样的继承树?
答案 0 :(得分:1)
我通过仅映射最高基类和具体对象来使这个继承结构起作用。
我很想听听有关此设计的意见。