powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate помогите с маппингом.
14 сообщений из 14, страница 1 из 1
NHibernate помогите с маппингом.
    #36716450
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть три таблички:

MONITORED_OBJECT(ID_OBJECT, ...);

DEVICE(ID_DEVICE, IMEI, ...);

DEVICE_INSTALL(ID_OBJECT, ID_DEVICE, START_TIME, FINISH_TIME);

DEVICE_INSTALL - это табличка истории установки прибора, причем, считается что в данный момент на объект с ID_OBJECT установлен ID_DEVICE если соответствующая строка имеет FINISH_TIME IS NULL. т. е. еще не сняли прибор.

Есть два класса

public MonitoredObject
{
public int Id;
public Device InstalledDevice;
}

public Device
{
public int Id;
public string Imei;
}

как написать маппинг NHibernate чтобы такое замапить? И можно было бы выдергнуть граф

MonitoredObject->Device по IMEI (см. таблицу Device).

что-то типа var monitoredObject = repository.Get(imei);

Куда копать интересуют различные решения. Помогите пож советом.

Спасибо.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36716458
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уточню, что маппинг нужен только на выборку. ничего сохраняться не будет.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36716491
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

копать отсюда . Попробуйте сами написать маппинг. Коли не получится - кидайте свой маппинг сюда, поправим.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36716598
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

	<class name="MonitoredObjectInfo, Common" table="MONITORED_OBJECT">



		<id name="Id" column="ID_MONITORED_OBJECT" type="Decimal" unsaved-value="0">

      <generator class="sequence">

        <param name="sequence">G_ID_MONITORED_OBJECT</param>

      </generator>

		</id>



    <property column="NAME" type="String" name="Name" not-null="true" />

    <property column="DESCRIPTION" type="String" name="Description" not-null="false" />

    <many-to-one column="ID_MON_OBJECT_TYPE" name="Type" class="MonObjectTypeInfo, Common" />

    <many-to-one column="ID_MON_OBJECT_HARACT" name="Haract" class="MonObjectHaractInfo, Common" />



  </class>

</hibernate-mapping>



<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">

  <class name="DeviceInfo, Common" table="DEVICE">



    <id name="Id" column="ID_DEVICE" type="Decimal" unsaved-value="0">

      <generator class="sequence">

        <param name="sequence">G_ID_DEVICE</param>

      </generator>

    </id>



    <property column="IMEI" type="String" name="Imei" not-null="true" />

    <property column="DESCRIPTION" type="String" name="Name" not-null="true" />

    <many-to-one column="ID_DEVICE_MODEL" name="Model" class="DeviceModelInfo, Common" />

    <many-to-one column="ID_DEVICE_CONFIG" name="Config" class="DeviceConfigInfo, Common" />



  </class>

</hibernate-mapping>


Что нужно добавить в маппинг для MonitoredObject, чтобы замапить его поле InstalledDevice через табличку DEVICE_INSTALL?
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36716600
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+

DEVICE_INSTALL(ID_OBJECT, ID_DEVICE, START_TIME, FINISH_TIME);

DEVICE_INSTALL - это табличка истории установки прибора, причем, считается что в данный момент на объект с ID_OBJECT установлен ID_DEVICE если соответствующая строка имеет FINISH_TIME IS NULL. т. е. еще не сняли прибор.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36717072
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понимаю - у вас простейшие односторонние ассоциации. самый простой способ их замапить - использовать <many-to-one>
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36717370
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

Каким образом? я не пойму. Как мне использовать связующую таблицу в many-to-one? :) Там есть третья таблица почитайте выше.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36717774
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord BritishSolYUtor,

Каким образом? я не пойму. Как мне использовать связующую таблицу в many-to-one? :) Там есть третья таблица почитайте выше.

Нафига при связи один ко одному "связующая таблица"?
Что именно вам не понятно? Английские буквы? Вот тут есть родная речь. И даже в ваших маппингах такие связи есть. По образу и подобию сложно сделать?
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36718103
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SolYUtor,

вы предлагаете мне изменить схему? и свести к тем случаям many-to-one что есть в маппинга.

связь у меня не 1:1, может быть и 0:0
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36718107
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

так вот собственно вопрос. как используя связующую таблицу замапить то что мне нужно?
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36718124
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

у меня есть идея добавить в DEVICE FK NULLABLE поле на ID_INSTALLED_OBJECT, а в MONITORED_OBJECT добавить FK NULLABLE ID_INSTALLED_DEVICE.

тогда можно будет many-to-one.

а DEVICE_INSTALL будет вести историю установок

а вот вопрос был при текущей схеме возможно ли one-to-one замапить.
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36718141
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

хотя нельзя так делать как я написал будет возможна связь

(0:1) (1:0)

а нужно только так (0:0) ИЛИ (1:1)
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36718802
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

Чет читал читал, ниче не понял, понял что надо только на селект.
Отсюда посоветую, накой вам мап, можно все в классе реализовать при помощи кода,
хоть лениво хоть не лениво, или все таки мап?
...
Рейтинг: 0 / 0
NHibernate помогите с маппингом.
    #36719305
SolYUtor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lord British,

Из ваших отрывочных данных вообще непонятно, что у вас за схема БД. Собирать по кусочкам схему мне совсем неохота. Хотите красивый ответ - красиво задавайте вопрос, с картинками.

P.S. Связь 0-0 особенно порадовала. Ржал от души. :)
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / NHibernate помогите с маппингом.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]