延迟加载我单独我的域逻辑从我的web服务逻辑与NHibernate流利,Web服务和automapper
这是我的域名,实际上从NHibernate的
public static IList<Location> LoadReturnLocationsFromDatabase(DateTime lastUpdateTime)
{
using (var session = NHibernateHelper.OpenSession())
{
// retreive all stores and display them
using (session.BeginTransaction())
{
var locations = session.CreateCriteria(typeof(Location)).Add(Expression.Gt("LastUpdatedTime", lastUpdateTime)).SetMaxResults(10).List<Location>();
return locations;
}
}
}
此数据获取数据然后返回到Web服务我用Automapper复制它,以不公开的数据库访问对象的网络服务,并保持所有的东西独立。
public IList<GetLocationDetailsResponse> GetLocationUpdate(DateTime lastUpdateTimeDT)
{
Mapper.CreateMap<Location, GetLocationDetailsResponse>();
IList<Location> locations = WhygoDomain.GetLocations.LoadReturnLocationsFromDatabase(lastUpdateTimeDT);
IList<GetLocationDetailsResponse> getLocationDetails = Mapper.Map<IList<Location>, IList<GetLocationDetailsResponse>>(locations);
return getLocationDetails;
}
我的问题是我不能做的映射,除非我指定的位置和状态之间的关系是不懒加载,因为Web服务是外:在数据
using (var session = NHibernateHelper.OpenSession())
域。
延迟加载似乎是做这样的事情的首选方法,所以我想知道如果这种方法好不好?这是一个数据导出服务,将导出内存使用情况等最终可能会有问题。
如果我需要改变这一点,是这个问题的原因我的代码结构?如果是这样,我怎么能保持我的域逻辑独立,并解决这个问题?
您是否有AOP框架? –