Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2011, 13:14   #1
don_castello
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 1
По умолчанию Linq to Sql и наследование классов

Здравствуйте.
В общем такая ситуация. Есть основной класс, например, Товар. Есть наследуемые от него классы, например, Стол, Стул, Диван, которые содержат методы и свойства основного. Для работы с БД используется DataContext. Теперь в чем вся проблема заключается. Есть метод репозитория основного класса GetTable, который возвращает таблицу модели БД типа Table<>. НО, для того, чтобы правильно вернуть таблицу, нам нужно указать, какой таблицу какого подкласса мы хотим взять. Если мы указываем тип подкласса, мы получаем тип не Table<>, а IQueryable<>. Все бы хорошо, но при последующем сохранении изменений в DataContext, нам нужен именно Table<>.
Как можно извернуться в данной ситуации ?
don_castello вне форума Ответить с цитированием
Старый 15.06.2011, 23:45   #2
NeodinDoma
Новичок
Джуниор
 
Регистрация: 28.05.2011
Сообщений: 1
По умолчанию Linq to Sql и наследование классов

Использую Linq2SQL. Есть компонент Machine и есть несколько производных классов условно Machine1, Machine2 и Machine3, которые перегружают свойства базового класса Machine. В базовом классе Machine есть поле Type которое и определяет какого типа этот автомат. Теперь при загрузке данных из БД в DataContextе создается таблица System.Data.Linq.Table<Machine> и наполняется экземплярами Machine, а не Machine1, Machine2 и Machine3 как мне надо. Как можно указать какой класс создавать при загрузке из БД основываясь на поле Type? Очень признателен буду за помощь и идеи.

Сейчас вижу только путь это добавить еще таблицы Machine1 ... MachineN в БД со связью 1 к 1 на Machine, но этот путь мне не очень нравится.
NeodinDoma вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема 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