在使用fluent-nhibernate配置nhibernate时,为什么会出现MissingMethodException?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用fluent-nhibernate配置nhibernate时,为什么会出现MissingMethodException?相关的知识,希望对你有一定的参考价值。

下面是一些教程,我有一个带有nhibernate的.NET Core 2.2项目作为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:...DomainSessionFactory.cs:line 46
   at Domain.SessionFactory.Init(String connectionString) in D:...DomainSessionFactory.cs:line 29
   at Application.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env) in D:....ApplicationStartup.cs:line 34

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

我已经尝试安装System.Security.Permissions,以及System.AppDomain,但没有运气。我也没有在网上搜索3小时内找到答案。这似乎是当使用AddFromAssemblyAddFromAssemblyOf<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();
        }
答案

结果我需要在我的应用程序项目中安装nhibernate和fluentnhibernate包也出于某种原因。

以上是关于在使用fluent-nhibernate配置nhibernate时,为什么会出现MissingMethodException?的主要内容,如果未能解决你的问题,请参考以下文章

更改 NHibernate 中的初始 LazyLoad 行为

Python基础文件操作

memcached在Java中的应用以及magent的配置-每天进步一点点

将三个列表合并为一个列表[重复]

Python列表的增删改查

day12_参数化文件转成二维数组