Объекты данных LinQ ORM и наследование - PullRequest
1 голос
/ 31 октября 2008

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

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

Все они имеют Название

Все они имеют BodyText .

Все они имеют Статус

Все они имеют Дата добавления

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

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

  • ID
  • Название
  • СУБТИТРЫ
  • Bodytext
  • Состояние
  • AddedDate

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

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

Ответы [ 3 ]

2 голосов
/ 31 октября 2008

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

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

public partial class SomeContent : IContent
1 голос
/ 31 октября 2008

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

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

... и более.

НТН

0 голосов
/ 31 октября 2008

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

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

...