具有2级基类的EF 6具体对象不起作用?

时间:2013-11-29 21:40:24

标签: c# .net entity-framework

不确定这是否可能是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是否允许我映射这样的继承树?

1 个答案:

答案 0 :(得分:1)

我通过仅映射最高基类和具体对象来使这个继承结构起作用。

我很想听听有关此设计的意见。