作業中の MVC アプリケーションで NHibernate を使用したいのですが、構成に問題があります。このブログで見つけたセットアップを使用しています。
public class NHibernateHelper
{
private static ISessionFactory _sessionFactory;
private static ISessionFactory SessionFactory
{
get
{
if (_sessionFactory == null)
{
var NHibernateConfig = new Configuration();
NHibernateConfig.Configure(HttpContext.Current.Server.MapPath(@"Models\NHibernate\hibernate.cfg.xml"));
NHibernateConfig.AddDirectory(new System.IO.DirectoryInfo(HttpContext.Current.Server.MapPath(@"Models\NHibernate\Mapping")));
_sessionFactory = NHibernateConfig.BuildSessionFactory();
}
return _sessionFactory;
}
}
public static ISession OpenSession()
{
return SessionFactory.OpenSession();
}
}
接続を機能させようとしてアプリケーションを少しいじっていましたが、次の行でエラーが発生しています。
NHibernateConfig.Configure(HttpContext.Current.Server.MapPath(@"Models\NHibernate\hibernate.cfg.xml"));
エラーは以下です。
{"Could not find a part of the path 'C:\\Users\\%username%\\Documents\\Visual Studio 2010\\Projects\\Helpdesk4\\Helpdesk4\\Ticket\\Models\\NHibernate\\hibernate.cfg.xml'."}
どこに問題があるのかはっきりとわかります。「Ticket」ディレクトリはありません。行くべき...Helpdesk4\\Helpdesk4\\Models\\...
です。しかし、それがMapPath
パスの一部であるべきだと考える理由がわかりません。
それが役立つ場合は、私のファイル_Layout.cshtml
とTicketController
ファイルの詳細を次に示します。
チケットコントローラー
public ActionResult TicketLog()
{
IList<Ticket> lstTickets = _repository.getTickets();
return View(lstTickets);
}
レイアウト:
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
<li>@Html.ActionLink("Ticket Log", "TicketLog", "Ticket")</li>
</ul>
</nav>