IsessionFactory Issue - PullRequest
       16

IsessionFactory Issue

0 голосов
/ 07 октября 2010

В этой строке я получаю классическую ошибку «ссылка на объект не установлена ​​как экземпляр объекта»

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"/>

С файлом Products.mdf в папке appcode, которая была создана в VS2008

любые идеи, почему я мог бы бытьполучить эту проблему?

1 Ответ

2 голосов
/ 08 октября 2010

Вы можете изменить метод GetSessionFactory () следующим образом:

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