Объекты данных LinQ ORM и наследование

Я думаю о том, как это сделать, но у меня есть несколько разных форм данных в моей базе данных, статьях, новостях и т. д.

Все они имеют что-то общее, у всех есть идентификаторы (в БД они называются ArticleID, NewsID и т. д.)

У всех есть Заголовок

У всех есть Основной текст.

У всех есть Статус

У всех есть Дата Добавлена

Что я хотел бы сделать, так это стандартное наследование классов.

Мне нужен мастер-класс (мне не нужно записывать это в базу данных) под названием Содержание с такими полями, как:

  • Я БЫ
  • Заголовок
  • Подзаголовок
  • Основной текст
  • Статус
  • AddedDate

Я не уверен, как я могу это сделать с помощью ORM. Почему я хочу этого, потому что тогда я могу передать список COntent моему UserControl, который отвечает за его рендеринг. Ему потребуется только информация, общая для всех объектов.

Это вообще возможно?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
455
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Я не уверен, говорите ли вы о LINQ to SQL, но в Интернете есть несколько ресурсов о том, как создать с его помощью наследование:

  1. Пример столбца дискриминатора LINQ To SQL - Учебное пособие по сопоставлению наследования
  2. Наследование в LINQ to SQL Screencast

...и больше.

HTH

Я нашел одну страницу, которая выглядит так, будто на ней есть что-то вроде того, что я ищу (последний пост) ... но я не уверен в использовании слабо типизированных объектов:

Наследование LINQ

Ответ принят как подходящий

Вот для чего нужны интерфейсы. Пусть каждый класс реализует интерфейс IContent, который содержит ваши свойства Title, BodyText, Status и DateAdded. Теперь вы можете передавать коллекцию (List<IContent>), которая может содержать различные типы контента.

Если вы используете LinqToSql, вы можете создавать файлы частичных классов, чтобы автоматически сгенерированные классы реализовывали нужный вам интерфейс.

public partial class SomeContent : IContent

Другие вопросы по теме