NHibernate: получение свойства сущности из другой таблицы (one-to-one)

1

Необходимо в файле меппинга задать свойство значение поля из другой таблицы

Лучший ответ:

1

Можно использовать в меппинге конструкцию:

<join table="second_table">
     <key column="ref_first_table_id"/>
     <property name="PropertyName" column="second_id" update="false"/>
</join>

Параметр update="false" используется для того, чтобы при изменениях сущности таблица меппинга не апдейтилась.

angila

В NHibernate нет тега

Sergey

Ну в версии 2.1.0 точно есть.

Новые ответы


0

Можно сделать с FluentNhibernate. Вот примеры классов:

public class User
{
	public virtual int Id { get; set; }
	public virtual string Name { get; set; }
	public virtual UserDetails Details { get; set; }
}

public class UserDetails
{
	public virtual int Id { get; set; }
	public virtual User User { get; set; }
	public virtual string Address { get; set; }
}

И маппинги для них:

public class UserMap : ClassMap<User>
{
	public UserMap()
	{
		Id(x => x.Id).GeneratedBy.Native("SEQ_USER");
		Map(x => x.Name);
		HasOne(x => x.Details)
			.Cascade.All()
			.ForeignKey("UserDetails");
	}
}

public class UserDetailsMap : ClassMap<UserDetails>
{
	public UserDetailsMap()
	{
		Id(x => x.Id).GeneratedBy.Foreign("User");
		Map(x => x.Address);
		HasOne(x => x.User).Constrained();
	}
}

v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.