![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 07.01.2011
Сообщений: 1
|
![]()
Здравствуйте.
В общем такая ситуация. Есть основной класс, например, Товар. Есть наследуемые от него классы, например, Стол, Стул, Диван, которые содержат методы и свойства основного. Для работы с БД используется DataContext. Теперь в чем вся проблема заключается. Есть метод репозитория основного класса GetTable, который возвращает таблицу модели БД типа Table<>. НО, для того, чтобы правильно вернуть таблицу, нам нужно указать, какой таблицу какого подкласса мы хотим взять. Если мы указываем тип подкласса, мы получаем тип не Table<>, а IQueryable<>. Все бы хорошо, но при последующем сохранении изменений в DataContext, нам нужен именно Table<>. Как можно извернуться в данной ситуации ? |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 28.05.2011
Сообщений: 1
|
![]()
Использую Linq2SQL. Есть компонент Machine и есть несколько производных классов условно Machine1, Machine2 и Machine3, которые перегружают свойства базового класса Machine. В базовом классе Machine есть поле Type которое и определяет какого типа этот автомат. Теперь при загрузке данных из БД в DataContextе создается таблица System.Data.Linq.Table<Machine> и наполняется экземплярами Machine, а не Machine1, Machine2 и Machine3 как мне надо. Как можно указать какой класс создавать при загрузке из БД основываясь на поле Type? Очень признателен буду за помощь и идеи.
Сейчас вижу только путь это добавить еще таблицы Machine1 ... MachineN в БД со связью 1 к 1 на Machine, но этот путь мне не очень нравится. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
проблема C# LINQ SQL | neomichi | Общие вопросы .NET | 0 | 07.08.2010 17:26 |
Наследование классов | Serjuk | Общие вопросы C/C++ | 9 | 11.04.2010 16:25 |
LINQ для SQL. Провайдер не поддерживается. | Stilet | Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) | 3 | 12.02.2010 17:49 |
наследование классов | Dimarik | Общие вопросы C/C++ | 15 | 02.07.2009 20:00 |