Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

icq: 65115258
По умолчанию 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, но этот путь мне не очень нравится.
__________________
[url=http://www.k-is.ru/]курсы массажа повышение квалификации, обучение косметологии[/url]
NeodinDoma вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема 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 18:49
наследование классов Dimarik Общие вопросы C/C++ 15 02.07.2009 20:00


17:07.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.