Update of /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/App_Code
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7755/App_Code
Added Files:
ICustomerEditController.cs NHibernateCustomerEditController.cs
Log Message:
extended northwind sample with handling lazy-loading for session-stored nhibernate proxies
--- NEW FILE: ICustomerEditController.cs ---
using Spring.Northwind.Domain;
public interface ICustomerEditController
{
void EditCustomer(Customer customer);
void Clear();
Customer CurrentCustomer { get; }
}
--- NEW FILE: NHibernateCustomerEditController.cs ---
using System.Web;
using NHibernate;
using Spring.Data.NHibernate;
using Spring.Northwind.Domain;
/// <summary>
/// </summary>
/// <author>erich.eichinger</author>
/// <version>$Id: NHibernateCustomerEditController.cs,v 1.1 2007/09/29 21:32:09 oakinger Exp $</version>
public class NHibernateCustomerEditController:ICustomerEditController
{
private readonly ISessionFactory sessionFactory;
private Customer currentCustomer;
public NHibernateCustomerEditController(ISessionFactory sessionFactory)
{
this.sessionFactory = sessionFactory;
}
private ISession Session
{
get
{
return SessionFactoryUtils.GetSession( sessionFactory,false );
}
}
public void EditCustomer(Customer customer)
{
currentCustomer = customer;
}
public void Clear()
{
currentCustomer = null;
}
public Customer CurrentCustomer
{
get
{
Customer customer = currentCustomer;
Session.Lock(customer, LockMode.None);
return customer;
}
}
}
|