在nhibernate会话中获取集合
本文关键字:获取 集合 会话 nhibernate | 更新日期: 2023-09-27 18:04:20
一个属性有很多照片。一张照片属于一个属性。
在我的mvc控制器,我得到作为参数数组的整数。这些整数表示我要删除的照片的id。
我正在使用nhibernate会话和事务与数据库交互。
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();
}
因为我只发送IEnumrable of photos到视图问题就像这样解决了,不是发送lazy load property photos collection,而是发送IEnumerable of photos,像这样
IEnumerable<Photo>photos = session.Query<Photo>().Where(x => x.Property == p).ToList();