Je viens de passé à parler Couramment NHibernate et j'ai rencontré un problème et je n'ai trouvé aucune information à ce sujet.
Voici le cas :
public class Field : DomainObject, IField
{
public Field()
{
}
public virtual string Name { get; set; }
public virtual string ContactPerson { get; set; }
public virtual bool Private { get; set; }
public virtual IAddress Address { get; set; }
}
IAddress est une interface implémentée par une classe nommée Adresse
public class Address : DomainObject, IAddress
{
public Address()
{
}
public virtual string City { get; set; }
public virtual string Country { get; set; }
public virtual string PostalCode { get; set; }
public virtual string StreetAddress { get; set; }
}
Voici mes fichiers de mappage pour les deux classes
ADRESSE
public class AddressMap : ClassMap<Address>
{
public AddressMap()
{
WithTable("Addresses");
Id(x => x.Id, "Id").Access.AsCamelCaseField(Prefix.Underscore).GeneratedBy.Guid();
Map(x => x.City, "City");
Map(x => x.Country, "Country");
Map(x => x.PostalCode, "PostalCode");
Map(x => x.StreetAddress, "StreetAddress");
}
}
CHAMP
public class FieldMap : ClassMap<Field>
{
public FieldMap()
{
WithTable("Fields");
Id(x => x.Id, "Id").Access.AsCamelCaseField(Prefix.Underscore).GeneratedBy.Guid();
Map(x => x.Name, "Name");
Map(x => x.ContactPerson, "ContactPerson");
Map(x => x.Private, "Private");
References(x => x.Address, "AddressId").Cascade.Delete().Cascade.SaveUpdate();
}
}
Alors, quand j'ai essayé de restauration d'un objet de champ de ma base de données, j'obtiens une NHibernate message d'erreur qui indique que IAddress n'est pas tracé. Est-il possible de spécifier à NHibernate pour utiliser la classe d'Adresse dans la cartographie?
S'il vous plaît laissez-moi savoir si plus d'informations sont nécessaires.
Merci beaucoup,
Charles