NHflernate fluente, trabalhando com interfaces

Acabei de mudar para o Fluent NHibernate e encontrei um problema e não encontrei nenhuma informação sobre ele.

Aqui está o caso:

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 é uma interface implementada por uma classe chamada Address

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; }
}

Aqui estão meus arquivos de mapeamento para as duas classes

ENDEREÇ

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");
    }
}

CAMP

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();
    }
}

Então, quando tentei recuperar um objeto de campo do meu banco de dados, recebo um erro NHibernate informando que IAddress não está mapeado. Existe alguma maneira de especificar para o NHibernate usar a classe Address no mapeamento?

Entre em contato se forem necessárias mais informaçõe

Muito obrigado

Charles

questionAnswers(3)

yourAnswerToTheQuestion