Получение NHibernate.Hql.Ast.ANTLR.QuerySyntaxException: «вакансия не отображается» после перемещения общего кода в общий проект в том же решении - PullRequest
0 голосов
/ 25 марта 2019

Я создаю другое приложение, которое разделяет общие сущности, поэтому я переместил сущности и сопоставления в этот новый Общий проект. Я изменил пространства имен, добавил зависимости проекта и добавил ссылку на этот новый общий проект, но я получаю не отображенную ошибку. Есть ли какие-то шаги, которые я пропускаю, например, добавление ссылки на него в файл запуска или что-то в этом роде?

ModelMapper

    private ISessionFactory ConfigureNHibernate() {
        var cfg = new Configuration();

        cfg.DataBaseIntegration(db => {
            db.ConnectionString = Configuration.GetConnectionString("MyConnection");
            db.Dialect<MsSql2012Dialect>();
            db.BatchSize = 500;
            db.KeywordsAutoImport = Hbm2DDLKeyWords.AutoQuote;

        var mapper = new ModelMapper();
        mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());
        cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
        cfg.AddAssembly("MyProject.Common");

        return cfg.BuildSessionFactory();
    }

1 Ответ

1 голос
/ 25 марта 2019

Похоже, проблема здесь.

var mapper = new ModelMapper();
mapper.AddMappings(Assembly.GetExecutingAssembly().GetExportedTypes());
cfg.AddMapping(mapper.CompileMappingForAllExplicitlyAddedEntities());
cfg.AddAssembly("MyProject.Common");

Assembly.GetExecutingAssembly () не будет вашей новой сборкой проекта сопоставления.

Я всегда создаю модель своего домена в отдельном проекте и передаю ее инициализатору nhibernate.

Итак, у меня есть свойство на моем NhibernateInitializer, которое принимает сборку сопоставления

private Assembly MappingAssembly
{
    get { return _mappingAssembly ?? (_mappingAssembly = Assembly.Load(_mappingAssemblyName)); }
}

Это загружает мою сборку картирования.

Тогда, когда пришло время настроить их в моем маппере, код будет

    _mapper.AddMappings(MappingAssembly.GetExportedTypes());
...