Почему я получаю исключение MissingMethodException при настройке nhibernate с помощью fluent-nhibernate? - PullRequest
0 голосов
/ 30 марта 2019

Следуя некоторым учебникам, у меня есть проект .NET Core 2.2 с nhibernate в качестве ORM.Я настроил класс SessionFactory и после запуска приложения получаю исключение:

FluentNHibernate.Cfg.FluentConfigurationException
  HResult=0x80131500
  Message=An invalid or incomplete configuration was used while creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.


  Source=FluentNHibernate
  StackTrace:
   at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory()
   at Domain.SessionFactory.BuildSessionFactory(String connectionString) in D:\...\Domain\SessionFactory.cs:line 46
   at Domain.SessionFactory.Init(String connectionString) in D:\...\Domain\SessionFactory.cs:line 29
   at Application.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env) in D:\...\.Application\Startup.cs:line 34

Inner Exception 1:
MissingMethodException: Method not found: 'System.Security.PermissionSet System.AppDomain.get_PermissionSet()'.

Я попытался установить System.Security.Permissions, а также System.AppDomain, но безуспешно.Я также не нашел ответа за 3 часа поиска в Интернете.Похоже, что когда используются либо строки AddFromAssembly, либо AddFromAssemblyOf<Entity>() (я пока не понимаю, для чего они, но когда они закомментированы, я не получаю исключения).

        private static ISessionFactory BuildSessionFactory(string connectionString)
        {
            var configuration = Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2012.ConnectionString(connectionString)
                .ShowSql())
                .Mappings(m => m.FluentMappings
                    .AddFromAssembly(Assembly.GetExecutingAssembly())
                    //.AddFromAssemblyOf<Entity>()
                    .Conventions.Add(
                        ForeignKey.EndsWith("Id"),
                        ConventionBuilder.Property
                            .When(criteria => criteria.Expect(x => x.Nullable, Is.Not.Set), x => x.Not.Nullable()))
                    .Conventions.Add<TableNameConvention>());

            //configuration.ExposeConfiguration(c =>
            //    new SchemaExport(c).Execute(true, true, false));

            return configuration.BuildSessionFactory();
        }

1 Ответ

0 голосов
/ 30 марта 2019

Оказывается, мне нужно было установить пакеты nhibernate и fluentnhibernate в моем проекте приложения по некоторым причинам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...