J'essaie de comprendre comment mapper un composant comme une clé primaire dans nhibernate et si possible dans nhibernate fluent aussi bien.Comment mapper un composant qui est également une clé primaire dans NHibernate hbm xml (ou dans une carte de classe fluent-nhibernate)?
Le composant en question est un ensemble unique de coordonnées 3D, voici l'objet:
public class SpaceLocation
{
public virtual SpaceCoordinate Coordinates { get; set; }
public virtual SpaceObject AtLocation { get; set; }
}
SpaceCoordinate est une structure définie comme suit:
public struct SpaceCoordinate
{
public int x { get; set; }
public int y { get; set; }
public int z { get; set; }
}
En NHibernate couramment pour faire SpaceCoordinate un componet Je voudrais créer une classe de cartographie comme ceci:
public class SpaceLocationMap : ClassMapWithGenerator<SpaceLocation>
{
public SpaceLocationMap()
{
References(x => x.AtLocation);
Component<SpaceCoordinate>(x => x.Coordinates, m =>
{
m.Map(x => x.x);
m.Map(x => x.y);
m.Map(x => x.z);
}).Unique();
}
}
Mais ce que je w Vous aimeriez savoir comment faire du composant SpaceCoordinate dans son ensemble la clé primaire avec sa contrainte unique. Comment est-ce que je pourrais mapper ceci dans Nmlernate xml, ou dans un classpath nhibernate fluide?