延遲加載我單獨我的域邏輯從我的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框架? –