NHibernate Mapa de tabla de unión de muchos a muchos
La estructura de mi base de datos se ve así:
Person
Id
Name
FieldA
FieldB
Phone
Id
Number
PersonPhone
PhoneId
PersonId
IsDefault
Mis asignaciones de NHibernate para los objetos Persona y Teléfono son sencillas, es el PersonPhone con el que estoy teniendo dificultades. Quiero tener una colección de objetos PersonPhone como propiedad de Person que me permita tener el número de teléfono de una persona y poder saber cuál es el número de teléfono "predeterminado" o principal para una persona.
Idealmente me gustaría que mi objeto PersonPhone se vea así:
public class PersonPhone
{
public virtual Person Person { get; set; }
public virtual Phone Phone { get; set; }
public virtual bool IsDefault { get; set; }
}
hasta ahora mi mapeo de NHibernate para esta tabla tiene el siguiente aspecto:
<class name="PersonPhone" table="PersonPhone">
<composite-id>
<key-property name="Person" column="PersonId" />
<key-property name="Phone" column="PhoneId" />
</composite-id>
<property name="IsDefault" column="IsDefault"/>
</class>
pero cuando NHibernate compila mis asignaciones aparece un error que dice:
No se pudo compilar el documento de mapeo: MyApp.Entities.PersonPhone.hbm.xml. NHibernate.MappingException: No se pudo determinar el tipo de: MyApp.Entities.Person, MyApp.Entities, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = null, para las columnas: NHibernate.Mapping.Column (PersonId)
¿Alguna idea sobre cómo se debe mapear esto?