0

我正在研究自定义会员提供程序,并且正在使用 nhibernate 标准 api 查询。我在将这些查询翻译为 linq 时遇到问题。这是代码

标准api代码

 users = session.CreateCriteria(typeof(Entities.User))
              .Add(NHibernate.Criterion.Restrictions.Like("Email", emailToMatch))
              .Add(NHibernate.Criterion.Restrictions.Eq("ApplicationName", this.ApplicationName))
               .List<Entities.User>();

不完整的linq

users = session.Query<Entities.User>()
            .Where(x => x.EMail == emailToMatch) 
            //missing ApplicationName equal to this.ApplicationName
            .ToList();

更新:图吧

  users = (from User u in session.Query<Entities.User>()
              where u.Email == emailToMatch && "ApplicationName" == this.ApplicationName
              select u).ToList();
4

2 回答 2

1
from user in session.Query<User>()
where user.Email == emailToMatch && user.ApplicationName == this.ApplicationName
select user;

请注意,您的标准提到“喜欢”以在 linq 使用中实现相同包含所有尽管这可能不是有效的电子邮件匹配

IE

from user in session.Query<User>()
where user.Email == emailToMatch && user.Name.Contains("Adam") 
select user;
于 2012-05-08T09:54:08.323 回答
0

使用 LINQ 方法语法:

users = session.Query<Entities.User>()
             .Where(user => user.Email == emailToMatch && user.ApplicationName == this.ApplicationName)

注意:仅当您确实需要立即运行查询时才执行 .ToList()。

于 2012-05-08T10:12:35.567 回答