powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Fluent nhibernate - Mapping HasMany с двумя ключами.
1 сообщений из 1, страница 1 из 1
Fluent nhibernate - Mapping HasMany с двумя ключами.
    #37309586
Sliborskii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Смысл задачи, вытянуть из одной таблицы все значения связанные с элементом другой таблицы, если для связи используется два ключа.

Есть три сущности.
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\"");
...
}
}


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


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