Je viens de commencer à utiliser Fluent NHibernate et se sont heurtées au problème suivant en essayant de Automap mes entités:Comment faire pour que NHibernate automatise automatiquement une classe héritant d'une classe abstraite héritant d'une interface?
public interface IDataEntity {}
public abstract class PhysicalEntity : IDataEntity {
public virtual int Id { get; set; }
public virtual string Name { get; set; }
}
public class Mine : PhysicalEntity {
public virtual string MineString { get; set; }
}
private static ISessionFactory CreateSessionFactory()
{
return Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("CSMID_FNH")))
.Mappings(m =>
m.AutoMappings.Add(
AutoMap.AssemblyOf<Mine>()
.Where(t => t.Namespace == "DAL.DomainModel" && t.IsClass && !t.Name.EndsWith("Attribute"))
.IgnoreBase<PhysicalEntity>()))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
Maintenant, si je supprime la référence à l'interface IDataEntity, les travaux de AutoMapping. J'ai essayé d'insérer un champ d'identification dans l'interface, mais cela entraîne une erreur d'exécution de NHibernate, tout comme indiquer à la carte automatique d'ignorer le type IDataEntity. Qu'est-ce que j'oublie ici? J'aimerais vraiment que toutes les classes de mon domaine héritent de IDataEntity.