Tag: queryover

具有Queryover的动态Where条件

我有一个应用程序,我正在尝试实现DDD概念。 我的存储库类有一些列出实体的方法。 我想知道如何使用QueryOver进行查询以使用AND运算符过滤分离,当参数填充时,sample public IEnumerable FindProducts(string name, decimal? price, DateTime? validDate, int? stock, int? idSupplier) { var query = Session.QueryOver().OrderBy(x => x.Name).Asc; if (!string.IsNullOrEmpty(name)) // add where condition for name parameter if (price.HasValue) // add ‘AND’ where condition for price parameter if (validDate.HasValue) // add ‘AND’ where condition for validDate parameter if (idSupplier.HasValue) // add […]

Nhibernate Group By和Alias To Bean

我一直在努力将旧的查询翻译成Nhibernate。 我们正在将旧项目从Nhibernate 2升级到最新版本。 我使用QueryOver语法,因为Linq不是一个选项,因为查询的复杂性(同事的建议)。 我想查询DB(Oracle)以获得一些必须分组的结果。 结果我需要一个我的DTO的分组集合。 我也注意到nhibernate在转换为具有复杂属性的DTO时遇到了麻烦(嵌套DTO)为了解决这个问题,我找到了这个主题。 这很好用,但我不是魔术弦的粉丝…… 我将添加一些代码片段,了解我的怪物查询在这一刻的表现。 问题是我似乎无法弄清楚如何在不破坏其他所有内容的情况下添加组。 所以我想在一个属性上分组但在我的结果中仍然有DTO。 就像是: ILookup<int,IEnumerable> 欢迎任何帮助。 抱歉变量和类是荷兰语-_- SYNUITGAANDEBRIEF uitgaandebrief = null; SYNAANVRAAG joinedAanvraag = null; SYNDOSSIER joinedDossier = null; SYNVERBRUIKSADRES joinedVerbruiksAdres = null; SYNEAN joinedEan = null; SYNCTENERGIETYPE joinedEnergieType = null; SYNBRIEFBESTEMMELINGEN joinedBriefBestemmeling = null; SYNCTBRIEFTYPE joinedBriefType = null; SYNCTBRIEFSTATUS joinedBriefStatus = null; SYNCONTACTPERSOON joinedContactpersoon = null; […]

NHibernate QueryOver – 检索全部,并标记已经“选中”的那些

亲爱的NHibernate专家, 以下查询为我提供了所有类别: var result = Session.QueryOver(() => cat).List(); ..并通过运行此查询,我得到了所选的(category_x_product表): int productId = 11; Category cat = null; CategoryProduct cp = null; var subQuery = QueryOver.Of(() => cp) .Where(() => cp.ProductId == productId) .Select(Projections.Distinct(Projections.Property(() => cp.CategoryId))); result = Session.QueryOver(() => cat) .WithSubquery .WhereProperty(() => cat.Id).In(subQuery) .List(); 任何组合这两个查询的方法,以便我得到所有带有布尔值的类别,指示在CategoryProduct-query中实际上“选择”了哪一个。 将它映射到这样的实体,也许吧? CategorySelected —————- Category Category { get; set; } […]

nHibernate QueryOver中的GROUP BY和HAVING子句

我正在尝试用nHibernate QueryOver语言编写这个特定的sql查询,我不是很熟悉: SELECT MessageThreadId FROM MessageThreadAccesses WHERE ProfileId IN (arr) GROUP BY MessageThreadId HAVING COUNT(MessageThreadId) = arr.Count 其中arr是一个整数数组(用户ID)我作为参数传递,而MessageThreadAccess实体如下所示: public virtual MessageThread MessageThread { get; set; } public virtual Profile Profile { get; set; } …. 在阅读了多个堆栈溢出线程并进行实验后,我得到了我的查询(尝试获取MessageThread对象 – 它应该总是只有一个或没有),但它仍然无法工作,我不确定还有什么可以尝试。 查询似乎总是返回MessageThreadAccess对象,但是当读取它的MessageThread属性时,它总是为NULL。 var access = Session.QueryOver() .WhereRestrictionOn(x => x.Profile).IsIn(participants.ToArray()) .Select(Projections.ProjectionList() .Add(Projections.Group(x => x.MessageThread)) ) .Where( Restrictions.Eq(Projections.Count(x => x.MessageThread.Id), […]

如何动态构建()=> x.prop lambda表达式?

我的代码就像 DepartmentPaperConsumption dto = null; 然后我有NHibernate QueryOver结果,我想订购它 result.OrderByAlias(() => dto.TotalColorCopys); 但我想能够用字符串动态地指定dto任何属性。 我尝试使用动态LINQ,但似乎我无法得到它。 我也试过从头开始构建LambdaExpression – 也没有运气。 我将不胜感激任何帮助。

搜索文本包含QueryOver

我正在尝试这样做: var list = Session.QueryOver() .Where(x => x.LastName.Contains(searchText)) .List(); 但我收到此错误: 无法识别的方法调用:System.String:Boolean包含(System.String) 你有好主意吗 ? 更新: public class Person { public virtual string FirstName { get; set; } public virtual string LastName { get; set; } }

如何在Nhibernate上对子集合执行QueryOver

您好我有一个名为Notifications的类,它是User的子类。 public class User { public int Id { get; set; } public string Name { get; set; } public string UserName { get; set; } public ICollection UserNotifications { get; set; } } public class Notification { public int Id { get; set; } public ICollection UserNotifications { get; set; } public string Title […]

Nhibernate + QueryOver:过滤忽略敏感的地方

我正在尝试使用QueryOver在nHibernate中构建一个简单的查询,但我希望它将所有内容转换为小写或忽略敏感: Domain.User User = Session.QueryOver() .Where(x=>x.Login==”username”) .SingleOrDefault(); 我怎样才能做到这一点? 更新 : 有人建议问题可能在于DB的收集,但我从来没有遇到任何问题,这个脚本有效: Domain.User User = Session .CreateCriteria() .Add(Expression.Eq(“Login”, “username”)) .UniqueResult();

使用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 == […]