게으른 콜렉션이로드되었는지 아닌지 알아 내려고하고있다. DTO에 포함할지 안할지 안다. 아래는 제 코드입니다. itemsFetched됩니다IsInitialized가 NHibernate LINQ와 함께 작동하지 않는다.
컨트롤러
IEnumerable<Store> stores = StoreService.GetList(new int[] { 1, 2}, true);
StoreDTO tStore = StoreService.GetDTO(stores.First());
StoreService
public IEnumerable<Store> GetList(int[] Ids, bool stockItems = false)
{
IQueryable<Store> stores = StoreRepository.GetList(Ids);
if (stockItems)
stores.Fetch(s => s.StockItems);
return stores.ToList();
}
public StoreDTO GetDTO(Store store)
{
StoreDTO storeDTO = Mapper.Map<Store, StoreDTO>(store);
bool itemsFetched = NHibernate.NHibernateUtil.IsInitialized(store.StockItems);
if(itemsFetched) { /** do stuff **/ }
return storeDTO;
}
문제는 항상 false입니다하지만 난 거기에 브레이크 포인트를 넣어 경우 다음 StockItems보고하기 위해 VS 디버거를 사용 그런 다음 중단 점이 true를 반환하도록하십시오.
NHibernate LINQ 공급자가 고장 났거나 여기에 뭔가 빠져 있다는 뜻입니까?
감사
'StoreRepository.GetList()'에 대한 코드를 게시 할 수 있습니까? –