Во время настройки (уровня сопротивления) nhibernate я получаю исключение.Сообщение говорит, что nhibernate не может найти файл конфигурации hibernate.cfg.xml
.Но я проверил мой файл, и он настроен на копирование на выход всегда.Я храню отображения и постоянные классы в отдельной сборке.Но и консольный проект, и проект библиотеки классов имеют файл конфигурации в своей папке outpt.
Файл конфигурации
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">
NHibernate.Connection.DriverConnectionProvider
</property>
<property name="dialect">
NHibernate.Dialect.MsSql2008Dialect
</property>
<property name="connection.driver_class">
NHibernate.Driver.SqlClientDriver
</property>
<property name="connection.connection_string">
Data Source=(local); Initial Catalog=KrossThoughtDB;
Integrated Security=SSPI
</property>
<property name="show_sql">
true
</property>
<mapping resource="MyApp.Domain.Model.Entities.Mappings.User.hbm.xml" assembly="MyApp.Domain" />
<mapping resource="MyApp.Domain.Model.Entities.Mappings.Blog.hbm.xml" assembly="MyApp.Domain" />
<mapping resource="MyApp.Domain.Model.Entities.Mappings.Post.hbm.xml" assembly="MyApp.Domain" />
<mapping resource="MyApp.Domain.Model.Entities.Mappings.Category.hbm.xml" assembly="MyApp.Domain" />
<mapping resource="MyApp.Domain.Model.Entities.Mappings.Feedback.hbm.xml" assembly="MyApp.Domain" />
</session-factory>
</hibernate-configuration>
Также я использую реализацию вспомогательного средства сеанса NHibernate, которая была предоставлена в официальной документации по NHibernate.Помощник
public sealed class SessionHelper
{
private const String CurrentSessionKey = "nhibernate.current_session";
private static readonly ISessionFactory sessionFactory;
static SessionHelper()
{
sessionFactory = new Configuration().
Configure().
BuildSessionFactory();
}
public static ISession GetCurrentSession()
{
var context = HttpContext.Current;
var currentSession = context.Items[CurrentSessionKey] as ISession;
if(null == currentSession)
{
currentSession = sessionFactory.OpenSession();
context.Items[CurrentSessionKey] = currentSession;
}
return currentSession;
}
public static void CloseSession()
{
var context = HttpContext.Current;
var currentSession = context.Items[CurrentSessionKey] as ISession;
if(null == currentSession)
{
return;
}
currentSession.Close();
context.Items.Remove(CurrentSessionKey);
}
public static void CloseSessionFactory()
{
if(null != sessionFactory)
{
sessionFactory.Close();
}
}
}
И затем я вызываю этот код внутри моего примера консольного приложения
Код клиента
private static void Main(String[] args)
{
// the next line exception's thrown
using(var session = SessionHelper.GetCurrentSession())
using(var tx = session.BeginTransaction())
{
// some actions...
tx.Commit();
}
}
Помощь!1023 *