【问题标题】:Fluent NHibernate no data being returnedFluent NHibernate 没有返回数据
【发布时间】:2010-05-21 21:57:44
【问题描述】:

我已经成功地使用了 NHibernate,但现在我正在尝试迁移到 Fluent NHibernate。我已经创建了所有映射文件并将会话管理器设置为使用 Fluent 配置。然后我运行我的应用程序,它运行成功,但没有返回任何数据。
没有错误或任何迹象表明存在问题,但没有任何运行。

在使用 NHibernate 时,如果我没有将我的 hbm xml 文件设置为嵌入式资源,也会发生同样的事情。这让我想知道我必须将 Map 类设置为什么。现在,它们只是设置为Compile,它们被编译成dll,我可以通过反汇编看到。

有人对这里可能发生的事情有任何想法吗?

谢谢

private ISessionFactory GetSessionFactory()
        {
            return Fluently.Configure()
                .Database(
                    IfxOdbcConfiguration
                        .Informix1000
                        .ConnectionString("Provider=Ifxoledbc.2;Password=mypass;Persist Security Info=True;User ID=myuser;Data Source=mysource")
                        .Dialect<InformixDialect1000>()
                        .ProxyFactoryFactory<ProxyFactoryFactory>()
                        .Driver<OleDbDriver>()
                        .ShowSql()
                    )
                    .Mappings(
                        x => x.FluentMappings.AddFromAssembly(System.Reflection.Assembly.GetExecutingAssembly())
                        //.ExportTo("C:\\mappings")
                    )

                .BuildSessionFactory();
        }

【问题讨论】:

  • 是否对数据库执行了正确的 SQL 语句?日志记录告诉你什么?
  • 我没有看到任何正在执行的 sql。我在我的配置中设置了 showsql,但我的控制台中没有显示任何语句。
  • 请发布您的会话管理器配置的代码。
  • 当你说“没有数据被返回”时,你实际执行的是什么,你期望从哪里返回数据?
  • 我想我发现了部分问题 - 我没有将映射类的范围设置为公共。我添加了它,现在我至少收到一条错误消息。

标签: nhibernate fluent-nhibernate


【解决方案1】:

正在执行的程序集是否包含流畅的映射类?我会尝试:

.Mappings(x => x.FluentMappings.AddFromAssemblyOf<MappedType>())

其中MappedType 是一个具有流畅映射的类。

【讨论】:

    【解决方案2】:

    它们应该被设置为编译,这很好。这里没有什么特别需要的。问题很可能出在您的流畅配置而不是映射中。

    【讨论】:

    • 如果我没有收到任何错误消息,如何找出问题所在?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多