|
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/topic.php?fid=17&fpage=44&tid=1350737]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
2ms |
others: | 298ms |
total: | 414ms |
0 / 0 |