У меня проблема с загрузкой и выселением в сеансе спящего режима, вот коды.Не удалось инициализировать прокси - нет сеанса сессии.LOAD и EVICT
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);
}
}
называя его
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);
и вот сессия Menager
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
}
Я хочу, чтобы загрузить некоторые данные пихты с функцией загрузки, а затем четкие данные с cleardata но ИДК, как это было основано на каком-то туториале.
Хм может сказать, как изменить сеанс менганга, чтобы предотвратить возникновение таковых? И ошибка всегда вызвана выводом или загрузкой. – Endiss
Вам нужно будет изменить метод, чтобы получить сеанс. Вы бы создали новый, только если его уже нет. Вам также понадобится метод закрытия сеанса. Я рекомендую вам использовать диспетчер сеансов из [здесь] (http://www.codeproject.com/Articles/13390/NHibernate-Best-Practices-with-ASP-NET-1-2nd-Ed) –
Или вы могли бы помочь мне написать один на моем примере? – Endiss