Пытаюсь свалить голову с автопробега.У меня возникла проблема при попытке автоматизировать мой домен и создать базу данных.Я уверен, что это что-то простое, я делаю неправильно.
Проблема в том, что сгенерированы правильные таблицы, но в сгенерированных таблицах присутствует только поле идентификатора из базового класса, и никакие другие поля внутри сущностей не сгенерированы.
BaseEntityнаходится в другом пространстве имен для сущностей.
Я не уверен, куда идти отсюда, какие-либо идеи?
Вот моя конфигурация отображения:
public static ISessionFactory CreateSessionFactory()
{
return _sessionFactory = Fluently.Configure()
.Database(ConfigureDatabase())
.Mappings(m => m.AutoMappings.Add(CreateMappings()))
.ExposeConfiguration(BuildSchema)
.BuildSessionFactory();
}
private static IPersistenceConfigurer ConfigureDatabase()
{
return MsSqlConfiguration
.MsSql2008.ShowSql()
.ConnectionString(c => c.FromAppSetting("MSSqlConnectionString"))
.ProxyFactoryFactory<ProxyFactoryFactory>();
}
private static AutoPersistenceModel CreateMappings()
{
return AutoMap.AssemblyOf<Organisation>(new AutomappingConfig())
.Conventions.Add<CascadeConvention>();
}
private static void BuildSchema(Configuration config)
{
new SchemaUpdate(config)
.Execute(false,true);
}
Вот мойautoMappingConfig
public class AutomappingConfig : DefaultAutomappingConfiguration
{
public override bool ShouldMap(Type type)
{
return type.Namespace == "Domain.Model" && type.IsClass;
}
}
И все мои сущности наследуют этот базовый класс:
public class BaseEntity<T> where T : BaseEntity<T>
{
public virtual int Id { get; set; }
}
И пример сущности:
public class Contact : BaseEntity<Contact>, IAggregateRoot
{
public virtual String Name { get; set; }
public virtual Organisation Organisation { get; set; }
}