Я столкнулся со следующей проблемой. В моем приложении используются сущности Owner
и Area
, привязывающие столько же ко многим.
public class Area : DomainObject<int> {
private ISet<OwnersPeriod> _owners = new HashedSet<OwnersPeriod>();
public ICollection<OwnersPeriod> Owners {
get { return _owners; }
set {
Check.Require(value != null);
_owners = new HashedSet<OwnersPeriod>(value);
}
}
}
Таблица Owner2Area имеет следующие поля:
CREATE TABLE [dbo].[Owner2Area](
[ID] [int] IDENTITY(1,1) NOT NULL,
[IDOwner] [int] NOT NULL,
[IDArea] [int] NOT NULL,
[FirstDate] [datetime] NOT NULL,
[LastDate] [datetime] NULL,
CONSTRAINT [PK_Owner2Area] PRIMARY KEY CLUSTERED)
Поэтому соответствует классу OwnersPeriod
public class OwnersPeriod {
private Owner _member;
private Area _area;
public Owner Owner { get {...} set{...} }
public Area Area { get { ... } set { ... } }
public DateTime FirstDate { get; set; }
public DateTime? LastDate { get; set; }
}
Я написал сопоставления
<class lazy="false" name="Core.Domain.Area, Core" table="Areas">
...
<set name="Owners" table="Owner2Area" inverse="true" lazy="true" >
<key column="IDArea"/>
<composite-element class="Core.Domain.OwnersPeriod, Core" >
<parent name="Area" />
<property name="FirstDate" type="datetime"/>
<property name="LastDate" type="datetime"/>
<many-to-one name="Owner" class="Core.Domain.Owner, Core" column="IDOwner"/>
</composite-element>
</set>
</class>
Для каждой области существующие данные успешно загружаются в Owners
, но когда я добавляю новую запись в Owner2Area
- CreateSQLQuery
, эти данные не обновляются, например, для области. Если я снова открыл форму и получил все области, добавленная ссылка успешно загружена в коллекцию.
Как можно принудительно загрузить добавленную таким образом запись отношения «многие ко многим»?
Nhibernate v.2.0.1, дБ MSSQL 2005