Nhibernate 无法初始化代理-没有会话。请加载并退出
我在hibernate会话中遇到了加载和逐出的问题,下面是代码Nhibernate 无法初始化代理-没有会话。请加载并退出,nhibernate,session,Nhibernate,Session,我在hibernate会话中遇到了加载和逐出的问题,下面是代码 public virtual void ClearData(T obj) { using (ISession ses = SessionManager.OpenSession()) { ses.Evict(obj); } } public virtual T Load<T>(object id)
public virtual void ClearData(T obj)
{
using (ISession ses = SessionManager.OpenSession())
{
ses.Evict(obj);
}
}
public virtual T Load<T>(object id)
{
using (ISession ses = SessionManager.OpenSession())
{
return (T)ses.Load(typeof(T), id);
}
}
我想用load函数加载fir的一些数据,然后用cleardata清除数据,但idk如何做到这一点是基于一些教程的。你从哪里得到错误 有几件事不太好:
- 您正在为一个与任何nhibernate会话(您刚刚创建的会话)无关的对象调用execute(第一次)。逐出用于将对象从会话中分离,但只有在使用该会话加载对象时才有意义
- 每次操作都要创建一个会话,这不是推荐的方式。在一个会话中加载对象,然后在另一个会话中尝试将其逐出,这是不可能的
- 您正在为一个与任何nhibernate会话(您刚刚创建的会话)无关的对象调用execute(第一次)。逐出用于将对象从会话中分离,但只有在使用该会话加载对象时才有意义
- 每次操作都要创建一个会话,这不是推荐的方式。在一个会话中加载对象,然后在另一个会话中尝试将其逐出,这是不可能的
Firmy fir = new Firmy();
fir.ClearData(fir);
var yol = fir.Load<Firmy>(6);
Response.Write("<br/><br/><br/> TEST get");
Response.Write(yol.NazwaFirmy);
Response.Write("<br/><br/><br/> TEST EVI");
fir.ClearData(yol);
Response.Write(yol.NazwaFirmy);
public class SessionManager
{
#region Class Member Declarations
private static readonly ISessionFactory _sessionFactory;
private static readonly Configuration _configuration;
#endregion
static SessionManager()
{
_configuration = new Configuration();
_configuration.Configure();
_configuration.AddAssembly(typeof(SessionManager).Assembly);
_sessionFactory = _configuration.BuildSessionFactory();
}
public static ISession OpenSession()
{
return _sessionFactory.OpenSession();
}
#region Class Property Declarations
public static ISessionFactory SessionFactory
{
get { return _sessionFactory; }
}
#endregion
}