gpt4 book ai didi

linq-to-sql - 为数据库中的抽象基类和子类建模

转载 作者:行者123 更新时间:2023-12-04 02:47:27 27 4
gpt4 key购买 nike

我有 4 个子类:Video , Image , Note , 和 Form .每一种都包含不同类型的数据。例如,Image类包含磁盘上图像文件的路径和图像属性,以及 Form类包含表单字段值。然而,每个项目之间的共同元素是 GPS 坐标和航向,所以我有以下抽象基类:

public abstract class Content
{
public float? Latitude { get; set; }
public float? Longitude { get; set; }
public float? Heading { get; set; }
}

但是,我感到模糊的是如何在数据库中对此进行建模。目前我有一张表叫 Events (例如,假设一个事件是生日派对)和 4 张 table ( VideosImagesNotesForms )。每个表都有一个外键链接回 Events ' 首要的关键。

使用 LINQ-to-SQL,我为每个表获得了 5 个类。如果我只想要一种类型的数据,这很好,例如 Event.Images ,但我想要做的是计算“内容”的总数 Event拥有并获取 GPS 坐标。只需使用 Event.Images.Count() + Event.Videos.Count() + ...,我就可以轻松地进行计数,但我不能对 GPS 坐标做同样的事情。有什么方法可以为数据库建模,以便我可以为每个项目使用基类,并且在需要查看其数据时仍然能够获取单个强类型项目?

最佳答案

Martin Fowler 的企业应用程序架构模式中记录了三种不同的模式,每种模式都有不同的权衡:

  • Single Table Inheritance
  • Class Table Inheritance
  • Concrete Table Inheritance
  • 关于linq-to-sql - 为数据库中的抽象基类和子类建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447702/

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