Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 工厂问题_Asp.net Mvc_Nhibernate_Isession - Fatal编程技术网

Asp.net mvc 工厂问题

Asp.net mvc 工厂问题,asp.net-mvc,nhibernate,isession,Asp.net Mvc,Nhibernate,Isession,我在这一行遇到了经典的“对象引用未设置为对象实例”错误 HttpContext.Items["ISession"] = Configure.GetSessionFactory().OpenSession(); 我的configure.cs文件如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using FluentNHibernate.Cfg; using Fluen

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

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;
    }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用FluentNHibernate.Cfg;
使用FluentNHibernate.Cfg.Db;
使用NHibernate;
名称空间ForSale.Domain.NHibernate
{
公共静态类配置
{
私人静态ISessionFactory_sessionFactory;
公共静态无效设置()
{
_sessionFactory=fluntly.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(cs=>cs.FromConnectionStringWithKey(“产品”)
).ShowSql())
.Mappings(m=>
m、 FluentMappings.AddFromAssemblyOf().Conventions.AddFromAssemblyOf())
.BuildSessionFactory();
}
公共静态ISessionFactory GetSessionFactory()
{
返回工厂;
}
}
}
在网络配置中,我有连接字符串

 <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


您知道我为什么会遇到这个问题吗?

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

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

什么代码调用了
Configure.Setup
?您在哪里调用
HttpContext.Items
?感谢Jeff Sternal,我确信我的全局调用中缺少了一些代码,这些代码从应用程序启动()函数调用Configure.Setup()