Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> NHibernate 
:(
    Опции темы
Roxio
Дата 13.5.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Здравствуйте.
Имеется 

Код

class BaseClass 

// some properties 
}


и маппинг к нему

также имеются два класса реализации

Код

class Impl1 : BaseClass 

// some implementation 
}

class Impl2 : BaseClass 

// some implementation 
}


при сохранении:

Код

BaseClass bc = new Impl1(...); 
session.Save(bc);


вылетает ошибка "Unknown entity class: Impl1"

Подскажите почему???

Или как реализовать - чтобы у базового класса можно было имееть несколько реализаций? (Конечно применимо с NHibernate)

Это сообщение отредактировал(а) Roxio - 13.5.2008, 15:25
PM MAIL   Вверх
MFSham
Дата 13.5.2008, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 28.8.2005
Где: Беларусь, Гродно

Репутация: нет
Всего: 3



Напиши мапинги для Impl1 и Impl2. К базовому классу его тогда создавать не нужно будет.
У мапингов для Impl1 и Impl2 указывай соответствующие классы.
--------------------
Без ветра трава неподвижна. Без программ компьютеры бесполезны.
PM MAIL   Вверх
Roxio
Дата 14.5.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Так, а как тогда делать в дальнейшем выборку? Я понимаю, что для выборки класс не должен иметь реализации, а просто пустые свойства с гетерами и сетерами.
PM MAIL   Вверх
Veitmen
Дата 14.5.2008, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 10.11.2006
Где: СПБ

Репутация: 3
Всего: 4



Создай интерфейс. Пропиши на него маппинг. И реализовывай интерфейс в нужных классах. Предуперждаю сразу. Работа будет проиходит с той таблицей, которую ты прописал в маппинге. Единственное что получается ты можешь менять, так это какую то логику внутри классов реализующиъ интерфейс. Если у тебя для каждого класса своя таблица, но при этом одинаковый интерфейс, то тебе все равно придется прописывать маппинг для этого класса, с указанием таблицы с которой он должен работать.
PM MAIL ICQ   Вверх
Roxio
Дата 15.5.2008, 07:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 6.2.2008

Репутация: нет
Всего: нет



Спасибо. Только есть ещё один вопросик...
Как работает AttributeIndentifierAttribute? Просто попробовал вынести поле Id во внешний класс и остальные наследовать от него, вот нужно как-то замепить это поле в одном классе... В документации прочитал, что возможно при помощи AttributeIdentifier, пытаюсь делать по примеру из документации, вылетает с ошибкой... что конструктор не может не иметь аргументов. Хотя, вроде всё задано:

Код

public class Entity
    {
        private Guid _id;

        [Id(Name="Id", Column="{{Id.Column}}", Type="Guid")]
            [Generator(Class="guid")]
        [AttributeIdentifier(Name="Id.Column", Value="Id")]
        public virtual Guid Id
        {
            get { return _id; }
            set { _id = value; }
        }
    }


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1008 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.