Похоже, что многие люди, включая меня, не находят полного решения, чтобы добавить все сборки, сброшенные в папку bin, если они анонимны.Во всяком случае, я сделал это так, это не оптимально, но это решение ..
Подробнее о NoEntity здесь.
private static Conf CreateConfig()
{
return Fluently.Configure()
.Database(DatabaseConfig)
.Mappings(AddAssemblies)
.ExposeConfiguration(ValidateSchema)
.ExposeConfiguration(BuildSchema)
.BuildConfiguration();
}
private static void AddAssemblies(MappingConfiguration fmc)
{
(from a in AppDomain.CurrentDomain.GetAssemblies()
select a
into assemblies
select assemblies)
.ToList()
.ForEach(a =>
{
//Maybe you need to inly include your NameSpace here.
//if(a.FullName.StartsWith("MyAssembly.Name")){
fmc.AutoMappings.Add(AutoMap.Assembly(a)
.OverrideAll(p =>
{
p.SkipProperty(typeof(NoEntity));
})
.Where(IsEntity));
}
);
}
private static bool IsEntity(Type t)
{
return typeof(IEntity).IsAssignableFrom(t);
}
//Map IEntity
public class User : IEntity{}
public class UserMap : Entity<User>{}
//UserMap inherits ClassMap<T>