2013-03-18 40 views
0

一个属性有很多照片。一张照片属于一个物业。在nhibernate会议内收集藏品

在我的mvc控制器里,我得到了整数参数数组。这些整数表示我想要删除的照片的ID。

我正在使用nhibernate会话和事务来与db进行交互。

public ActionResult DeleteImgs(int[] data) 
{ 
    Property p = null; 
    using (ISession session = ....) 
    { 
     using(ITransaction transaction session.BeginTransaction()) 
     {    
     Photo photo = session.Get<Photo>(data[0]); 
     p = session.Get<Property>(photo.Id); 
     // found images and delete them 
     foreach(int id in data) 
     { 
      Photo ph = session.Get<Photo>(id); 
      //remove property from association so I can delete photo 
      ph.Property = null; 
      session.Delete(ph); 
      session.SaveOrUpdate(ph); 
     } 
     //load property now with collection of remaining photos 
     // here IS THE PROBLEM, Even there is photos inside collection 
     // in debug I'm getting empty collection 
     p = session.Query<Property>(). 
      .Fetch(x=>x.Photos).ToList() //empty? 
      .FirstOrDefault; 

     transaction.Commit(); 
     } 
    } 
    return View(); 

}

回答

0

由于我只发送IEnumrable的照片到视图问题就解决了这个样子, ,而不是发送懒负荷特性的照片集,我喜欢这个

发送照片的IEnumerable
IEnumerable<Photo>photos = session.Query<Photo>().Where(x => x.Property == p).ToList();