ASP.NET MVC3 プロジェクトで Fluent NHibernate を使用しています。私はカスタム メンバーシップ プロバイダーをコーディングしており、FNHRoleProvider クラスをセットアップしています。その一部には、次の try catch ブロックが含まれています。
private Entities.Roles GetRole(string rolename)
{
Entities.Roles role = null;
using (ISession session = SessionFactory.OpenSession())
{
using (ITransaction transaction = session.BeginTransaction())
{
try
{
role = session.CreateCriteria(typeof(Entities.Roles))
.Add(NHibernate.Criterion.Restrictions.Eq("RoleName", rolename))
.Add(NHibernate.Criterion.Restrictions.Eq("ApplicationName", this.ApplicationName))
.UniqueResult<Entities.Roles>();
//just to lazy init the collection, otherwise get the error
//NHibernate.LazyInitializationException: failed to lazily initialize a collection, no session or session was closed
IList<Entities.Users> us = role.UsersInRole;
}
catch (Exception e)
{
if (WriteExceptionsToEventLog)
WriteToEventLog(e, "GetRole");
else
throw e;
}
}
}
return role;
}
using ステートメントに NHibernate.Criterion を追加したにもかかわらず、Criterion が現在の名前空間に存在しないというエラーが表示されます。名前空間のこの部分をオブジェクト ブラウザーで表示することもできます。
ビルド エラーを解決するにはどうすればよいですか?