2015-02-16 1 views
4

Привет Я использую наследование TPH для создания похожих настраиваемых элементов. Мой TPH Модель:Связи TPH и Many to Many

public class baseConfigItem 
    { 
     public int ID {get; set;} 
     public string ExternalText {get; set;} 
     public string InternalText { get; set; } 
     public bool Active { get; set; } 
     public string Group { get; set; } 
     public int SortOrder { get; set; } 
     public statusDef status { get; set; } 

     public virtual ICollection<Order> Orders{get;set;} 
     public baseConfigItem() 
     { 

      this.Orders= new List<Order>(); 

     } 
    } 


public class DoorTypes:baseConfigItem{public DoorTypes():base(){}} 
    public class WindowType : baseConfigItem { public WindowType():base(){}} 
    public class WallType : baseConfigItem { public WallType():base(){}} 
    public class RoofType : baseConfigItem { public RoofType():base(){}} 
    public class RoofSize : baseConfigItem { public RoofSize():base(){}} 
    public class DoorSize : baseConfigItem { public DoorSize():base(){}} 
    public class GardenSize : baseConfigItem { public GardenSize():base(){}} 

Я тогда нужно создать многие ко многим и 1, один ко многим/многие к одному отношения с ребенком субъектов с субъектами порядка:

  • Орден имеет многие WindowTypes
  • Орден имеет много WallTypes
  • Орден имеет много RoofTypes
  • Орден имеет один RoofSize
  • Орден имеет один DoorSize
  • Орден имеет один GardenSize
public class Order 
{ 
    public int ID {get; set;} 
    public virtual ICollection<WindowType> WindowTypes {get; set;} 
    public virtual ICollection<WallType> WallTypes {get; set;} 
    public virtual ICollection<RoofType> RoofTypes {get; set;} 
    public RoofSize RoofSize {get; set;} 
    public DoorSize DoorSize {get; set;} 
    public GardenSize GardenSize {get; set;} 
} 

Однако это не создает отношения многие ко многим для RoofTypes, WallTypes и т.д ... Я предположил, что public virtual ICollection Orders {get; set;} будет наследоваться. Как я смогу установить вышеуказанные унаследованные классы с отношением от многих до многих и от одного до многих?

ответ

0

Я пробовал вашу модель. Он работает для меня без единого изменения (ну, это не совсем так, я изменил «StatusDef» на bool, но это не имеет никакого значения.) И «poof» - у меня все отношения работают. Все, что вам нужно сделать, это компиляция и запуск проекта один раз. Это сделает все таблицы. Затем перейдите и проверьте свой SQL-сервер.

Удачи.

+0

PS. Вы можете улучшить свою модель, добавив Id в дочерние таблицы для родителя в отношениях от 1 до многих. – alikuli

 Смежные вопросы

  • Нет связанных вопросов^_^