J'essaie de déterminer si une collection paresseuse a été chargée ou non, donc je sais si je dois l'inclure dans le DTO. Voici mon code.IsInitialized ne fonctionne pas avec NHibernate LINQ
Contrôleur
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;
}
problème est itemsFetched est toujours faux, mais si je mets un point de rupture sur elle et puis utiliser le débogueur VS pour regarder les stockpièces puis laissez le point de rupture à travers elle retourne vrai. Est-ce que cela signifie que le fournisseur NHibernate LINQ est cassé ou est-ce que quelque chose me manque ici?
Merci
Pouvez-vous écrire le code pour 'StoreRepository.GetList()'? –