Tag: nhibernate queryover

流利的NHibernate“无法解决财产问题”

我已经阅读了很多关于同样错误的问题,但没有找到与我的确切问题相符的问题。 我正在尝试使用Fluent NHibernate访问对象的属性,它本身是根对象的一部分。 一些答案说我需要使用投影,其他我需要使用连接,我认为它应该通过延迟加载。 这是我的两个类以及Fluent映射: 艺术家class public class Artist { public virtual int Id { get; set; } public virtual string Name { get; set; } public virtual IList Albums { get; set; } public virtual string MusicBrainzId { get; set; } public virtual string TheAudioDbId { get; set; } public Artist() { } } […]

使用QueryOver时,Nhibernate无法解析属性exception,适用于QueryAll

我有以下问题 基本上我有以下两个片段: var contactAssociation = session.QueryOver(() => contactAssociationAlias) .Where(() => contactAssociationAlias.Contact.ID == careGiverId && contactAssociationAlias.Client.ID == clientKey) .Where(() => contactAssociationAlias.AclRole.RoleName == “Care Giver”) .SingleOrDefault(); 和 var contactAssociation = session.Query() .Where(cr => cr.Contact.ID == careGiverId && cr.Client.ID == clientKey) .Where(cr => cr.AclRole.RoleName == “Care Giver”) .SingleOrDefault(); 第二个工作第一个输出此错误: Message=could not resolve property: AclRole.RoleCode of: SL.STAdmin.DAL.ContactAssociation 有人知道为什么吗? 先感谢您

NHibernate:选择带有元素包中条目的项目

我有一个列表属性的类。 public class Paperboy{ private int _id; private string _lastname; private string _firstname; private string _mobile; private string _phone; private IList _additionalPhoneNumbers; } 列表被映射为带有键和元素的包。 现在我尝试通过电话号码(_phone,_mobile或_additionalPhoneNumbers)选择paberboys。 _phone和_mobile没有问题,但我坚持使用额外的数字。 我尝试了标准api和查询。 Criteria Api不知道属性AdditionalPhoneNumbers ICriteria criteria = session.CreateCriteria(typeof(Paperboy)); criteria.CreateAlias(“_additionalPhoneNumbers”, “AdditionalPhoneNumbers”); Disjunction or = Restrictions.Disjunction(); or.Add(Restrictions.Eq(“_phone”, number)); or.Add(Restrictions.Eq(“_mobile”, number)); or.Add(Restrictions.Eq(“AdditionalPhoneNumbers”, number)); criteria.Add(or); criteria.SetMaxResults(1); return criteria.UniqueResult(); 查询结束不知道包含: return query.Where(p => p.Mobile == […]

在NHibernate的queryover中使用OR Clause

我正在使用Nhibernate。 我正在通过queryover方法编写查询。 我能够编写和编写如下面的代码。 它的工作正常。 db.QueryOver(Of Users)() .Where(Function(x) x.Role = “Guest”) .And(Function(x) x.Block = 0) .And(Function(x) x.APPID = appId) .List(); 但我想使用Or子句代替And ,或两者的组合。 我该如何实现呢。 谢谢

NHibernate QueryOver组没有选择按列分组

有如下查询: var subquery = SessionFactory.GetCurrentSession() .QueryOver() .Where(_ => _.SomeOtherEntity.Id == someId) .SelectList(list => list .SelectGroup(x => x.SomeGroupByProperty) .SelectMax(x => x.MaxPerGroupProperty)) .List(); 生成的sql正在选择SomeGroupByProperty和SomeGroupByProperty最大值。 是否可以让它在SomeGroupByProperty上进行分组,但只选择MaxPerGroupProperty最大值? 这是为了将子查询结果与父查询中的包含一起使用。