加入nHibernate

加入nHibernate,nhibernate,Nhibernate,我有以下实体 public class Category { Id Name } public class Product { Id Name List<Category> list; } 公共类类别 { 身份证件 名称 } 公共类产品 { 身份证件 名称 名单; } 我想做的是使用nHibernate按类别名称获取所有产品 任何帮助都将不胜感激 提前感谢最简单的方法-使用Linq到nhibernate 看起来是这样

我有以下实体

public class Category 
{
      Id
      Name
}
public class Product 
{
      Id
      Name
      List<Category> list;
}
公共类类别
{
身份证件
名称
}
公共类产品
{
身份证件
名称
名单;
}
我想做的是使用nHibernate按类别名称获取所有产品

任何帮助都将不胜感激


提前感谢

最简单的方法-使用Linq到nhibernate

看起来是这样的:

public void GetProductsByCategoryName(string categoryName){
  Session.Linq<Product>(x=>x.list.Any(z=>z.Name=categoryName));
}
public void GetProductsByCategoryName(字符串categoryName){
Session.Linq(x=>x.list.Any(z=>z.Name=categoryName));
}

最简单的方法-使用Linq到nhibernate

看起来是这样的:

public void GetProductsByCategoryName(string categoryName){
  Session.Linq<Product>(x=>x.list.Any(z=>z.Name=categoryName));
}
public void GetProductsByCategoryName(字符串categoryName){
Session.Linq(x=>x.list.Any(z=>z.Name=categoryName));
}
谢谢您的帮助

我已经用Join解决了这个问题,我没有在我的版本中修改NHibernate.Linq.dll,我已经通过互联网下载了它

我的解决办法是

public IList<Product> GetAllProductsByCategoryName(string name)
{
    return Session.CreateQuery("from Product p left join fetch p.Categories c where c.Name = :name").SetParameter("name", name).List<Product>();

}
public IList GetAllProductsByCategoryName(字符串名称)
{
return Session.CreateQuery(“从产品p左连接获取p.Categories c,其中c.Name=:Name”).SetParameter(“Name”,Name).List();
}
再次谢谢你

谢谢你的帮助

我已经用Join解决了这个问题,我没有在我的版本中修改NHibernate.Linq.dll,我已经通过互联网下载了它

我的解决办法是

public IList<Product> GetAllProductsByCategoryName(string name)
{
    return Session.CreateQuery("from Product p left join fetch p.Categories c where c.Name = :name").SetParameter("name", name).List<Product>();

}
public IList GetAllProductsByCategoryName(字符串名称)
{
return Session.CreateQuery(“从产品p左连接获取p.Categories c,其中c.Name=:Name”).SetParameter(“Name”,Name).List();
}
再次感谢你