gpt4 book ai didi

c# - TPH 和多对多关系

转载 作者:行者123 更新时间:2023-11-30 12:58:46 26 4
gpt4 key购买 nike

您好,我正在使用 TPH 继承来建立类似的可配置项。我的 TPH 模型是:

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、一对多/多对一关系,并与具有订单实体的子实体建立关系:

  • Order 有很多 WindowTypes
  • Order 有很多 WallTypes
  • Order 有很多 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)虚拟 ICollection Orders{get;set;} 将被继承。我如何才能建立上述继承类与多对多和一对多的关系?

最佳答案

我试过你的模型。它无需任何更改即可为我工作(好吧,这不完全正确,我将“StatusDef”更改为 bool,但这不会有任何区别。)和“噗”——我的所有关系都在工作。您需要做的就是编译并运行项目一次。这将制作所有表格。然后去检查你的 SQL 服务器。

祝你好运。

关于c# - TPH 和多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28550598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com