我有两个实体 Visita 和 Cliente,它们分别实现了两个接口 IVisita 和 ICliente。IVisita 包含对 ICliente 的引用,我如何配置此地图?
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();
}
}
测试失败,出现异常“对于属性 'Cliente' 预期类型 'Vendor.Domain.Cliente' 但得到了 '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();
}
}