gpt4 book ai didi

c# - 在 Entity Framework 中使用 TPT 设计的多级继承

转载 作者:行者123 更新时间:2023-12-04 10:39:43 25 4
gpt4 key购买 nike

我想在 EF 中实现以下模型作为 TPT 设计。

enter image description here

我的代码如下:

基础型号

public abstract class Product
{
public int Id { get; set; }
public DateTime ProductionDate { get; set; }
}

车模
public abstract class Car : Product
{
public string ChassisNumber { get; set; }
public string DriverName { get; set; }
}

[Table("TeslaCars")]
public class TeslaCar : Car
{
public string Battery { get; set; }
public int Temperature { get; set; }
}

[Table("PorscheCars")]
public class PorscheCar : Car
{
public int FuelTank { get; set; }
}

摩托车型号
public abstract class Motorcycle : Product
{
public string RiderName { get; set; }
public bool IsRacing { get; set; }
}

[Table("CrossMotorcycles")]
public class CrossMotorcycle : Motorcycle
{
public int MaximumJump { get; set; }
}

[Table("KipsMotorcycles")]
public class KipsMotorcycle : Motorcycle
{
public long MaximumSpeed { get; set; }
}

但问题是,在创建表之后,只有 TPT 设计的最后一步,TPH 设计之上的层才被创建。

我的代码输出如下表:
enter image description here

我应该如何修改代码以在所有级别的表中遵循 TPT 设计?
在最终输出中,我需要按如下方式制作表格:

enter image description here

最佳答案

我终于得到了答案!

在这种情况下,我需要制作 车型摩托车模型单独表中的唯一字段,但上面的代码默认是用TPH设计制作的。

所以我们必须这样修改代码:

基础型号

public abstract class Product
{
public int Id { get; set; }
public DateTime ProductionDate { get; set; }
}

车模
[Table("Cars")]
public abstract class Car : Product
{
public string ChassisNumber { get; set; }
public string DriverName { get; set; }
}

[Table("TeslaCars")]
public class TeslaCar : Car
{
public string Battery { get; set; }
public int Temperature { get; set; }
}

[Table("PorscheCars")]
public class PorscheCar : Car
{
public int FuelTank { get; set; }
}

摩托车型号
[Table("Motorcycles")]
public abstract class Motorcycle : Product
{
public string RiderName { get; set; }
public bool IsRacing { get; set; }
}

[Table("CrossMotorcycles")]
public class CrossMotorcycle : Motorcycle
{
public int MaximumJump { get; set; }
}

[Table("KipsMotorcycles")]
public class KipsMotorcycle : Motorcycle
{
public long MaximumSpeed { get; set; }
}

关于c# - 在 Entity Framework 中使用 TPT 设计的多级继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59986638/

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