【问题标题】:IsessionFactory IssueIsessionFactory 问题
【发布时间】:2010-10-07 19:06:36
【问题描述】:

我在这一行收到经典的“对象引用未设置为对象的实例”错误

HttpContext.Items["ISession"] = Configure.GetSessionFactory().OpenSession();

我的configure.cs文件如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;

namespace ForSale.Domain.NHibernate
{
public static class Configure
{
    private static ISessionFactory _sessionFactory;

    public static void Setup()
    {
        _sessionFactory = Fluently.Configure()
            .Database(MsSqlConfiguration.MsSql2008.ConnectionString(cs => cs.FromConnectionStringWithKey("Products")
            ).ShowSql())
            .Mappings(m =>
              m.FluentMappings.AddFromAssemblyOf<Product>().Conventions.AddFromAssemblyOf<Product>())
            .BuildSessionFactory();
    }

    public static ISessionFactory GetSessionFactory()
    {
        return _sessionFactory;
    }
}
}

在 webconfig 我有连接字符串

 <connectionStrings>
<add name="Products" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Products.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>

使用 VS2008 中构建的 appcode 文件夹中的 Products.mdf

任何想法为什么我可能会遇到这个问题?

【问题讨论】:

  • 什么代码调用Configure.Setup
  • 你在哪里打电话HttpContext.Items
  • 感谢 Jeff Sternal 我松了一口气,我的 Global 中缺少一些代码,它从 Application_Start() 函数调用 configure.setup()

标签: asp.net-mvc nhibernate isession


【解决方案1】:

您可以将方法 GetSessionFactory() 更改为以下内容:

public static ISessionFactory GetSessionFactory()
{
    if (_sessionFactory == null)
        Setup();
    return _sessionFactory;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-16
    • 2015-06-26
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多