Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Fluent nhibernate - Mapping HasMany с двумя ключами.
|
|||
|---|---|---|---|
|
#18+
Смысл задачи, вытянуть из одной таблицы все значения связанные с элементом другой таблицы, если для связи используется два ключа. Есть три сущности. public class Collect_device:EntityBase { public virtual int cd_id { get; set; } public virtual IList<Point_mettering> Point_metterings { get; set; } } public class Collect_deviceMap:ClassMap<Collect_device> { public Collect_deviceMap() { Id(x => x.cd_id, "\"cd_id\"").Not.Nullable().GeneratedBy.Increment(); HasMany(x => x.Point_metterings).KeyColumns.Add("pm_Id").Inverse().Cascade.All(); } } public class Point_mettering:EntityBase // Уникальность нужно задать двумя полями pm_Id и cd_id { public virtual int pm_Id { get; set; } public virtual Collect_device cd_id { get; set; } public virtual IList<PARAMS> PARAMS { get; set; } ..... } public class Point_metteringMap:ClassMap<Point_mettering> { public Point_metteringMap() { Id(x => x.pm_Id).Column("\"pm_Id\"").Not.Nullable().GeneratedBy.Increment(); References(x => x.cd_id).Column("\"cd_id\"").Cascade.All(); // Как задать чтобы два ключа проверялись на уникальность??? HasMany(x => x.PARAMS).Table("PARAMS").KeyColumn("\"pm_Id\"").KeyColumn("\"cd_id\"").Inverse().Cascade.All(); // как сделать так чтобы выборка из таблицы params была по двум полям pm_Id и cd_id? } } public class PARAMS:EntityBase { public virtual int p_id { get; set; } public virtual Collect_device cd_id { get; set; } public virtual Point_mettering pm_Id { get; set; } public virtual int p_tag_id { get; set; } ... } public class PARAMSMap:ClassMap<PARAMS> { public PARAMSMap() { Id(x => x.p_id, "\"p_id\"").Not.Nullable().GeneratedBy.Increment(); References(x => x.cd_id).Column("\"cd_id\"").Cascade.All(); References(x => x.pm_Id).Column("\"pm_Id\"").Cascade.All(); Map(x => x.p_tag_id, "\"p_tag_id\""); ... } } Заранее спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2011, 16:32 |
|
||
|
|

start [/forum/moderation_log.php?user_name=Petrova_Anastasiya]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
get settings: |
10ms |
get forum list: |
20ms |
get settings: |
8ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 2879ms |
| total: | 3061ms |

| 0 / 0 |
