0

I have two entities Visita and Cliente that implements respectively two interfaces IVisita and ICliente. IVisita contains a reference to ICliente, how i can configure this map?

public class Visita : IVisita
{
    public virtual int Id { get; protected set; }

    public virtual ICliente Cliente { get; set; }
}

public class VisiteMap : ClassMap<Domain.Visita>
{
    public VisiteMap()
    {
        Table("Visite");
        Id(x => x.Id);

        References(x => x.Cliente)
            .Class(typeof(Domain.Cliente))
            .Not.Nullable();
    }
}

The test fail with exception "For property 'Cliente' expected type 'Vendor.Domain.Cliente' but got 'Vendor.Domain.ICliente'"

    [TestMethod]
    public void VisitePersistence()
    {
        var sessionFactory = Vendor.Persistenza.Database.CreateSessionFactory(true);
        using (var session = sessionFactory.OpenSession())
        {
            var cliente = new Cliente() { ... };

            using (var tran = session.BeginTransaction())
            {
                session.SaveOrUpdate(cliente);
                tran.Commit();
            }

            new PersistenceSpecification<Visita>(session)
                .CheckReference(x=> x.Cliente, cliente)
                .VerifyTheMappings();
        }
    }

1 Answers1

0

There's already a similar question on SO, regarding mapping the interfaces with FluentNHibernate.

Also, James Gregory raises a good point in his answer. Do interfaces within domain model actually provide any worth?

Community
  • 1
  • 1
Miroslav Popovic
  • 12,100
  • 2
  • 35
  • 47