LinQ ORM 数据对象和继承

Posted

技术标签:

【中文标题】LinQ ORM 数据对象和继承【英文标题】:LinQ ORM Data Objects and Inheritance 【发布时间】:2008-10-31 17:17:37 【问题描述】:

我正在考虑如何做到这一点,但我的数据库、文章、NewsItems 等中有几种不同形状的数据。

它们都有一些共同点,它们都有 ID(在 DB 中它们被命名为 ArticleID、NewsID 等)

他们都有一个标题

他们都有BodyText

他们都有一个状态

他们都有一个添加日期

我想做的是标准的类继承。

我想要一个名为 Content 的大师班(我不需要将其写入数据库),其字段如下:

身份证 标题 副标题 正文 状态 添加日期

我不确定如何使用 ORM 做到这一点。为什么我想要这个是因为我可以将一个内容列表传递给负责渲染它的 UserControl。它只需要所有对象共有的信息。

这可能吗?

【问题讨论】:

【参考方案1】:

这就是接口的用途。让每个类实现一个包含 Title、BodyText、Status 和 DateAdded 属性的 IContent 接口。现在您可以传递一个集合 (List<IContent>),其中可能包含不同类型的内容。

如果您使用的是 LinqToSql,您可以创建部分类文件,让自动生成的类实现您想要的接口。

public partial class SomeContent : IContent

【讨论】:

【参考方案2】:

我不确定您是否在谈论 LINQ to SQL,但是网上有一些关于如何使用它创建继承的资源:

    LINQ To SQL Discriminator Column Example - Inheritance Mapping Tutorial Inheritance in LINQ to SQL Screencast

...还有更多。

HTH

【讨论】:

【参考方案3】:

我发现一个页面看起来与我正在寻找的内容相似(最后一篇文章)......但我不确定是否使用弱类型对象:

LINQ inheritance

【讨论】:

以上是关于LinQ ORM 数据对象和继承的主要内容,如果未能解决你的问题,请参考以下文章

九.net core用orm继承DbContext(数据库上下文)方式操作数据库

深入Django ORM的继承关系

ORM框架简介

LINQ体验(18)——LINQ to SQL语句之视图和继承支持

Django ORM 操作

Django ORM:未继承子级的字段和值。对象重复。 (使用Django管理界面)