我正在开发自定义成员资格提供程序,我正在使用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>();
uncomplete 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();
答案 0 :(得分:1)
from user in session.Query<User>()
where user.Email == emailToMatch && user.ApplicationName == this.ApplicationName
select user;
请注意您的标准提到“喜欢”在linq中实现相同的内容包含尽管这可能无效w.r.t电子邮件匹配
即
from user in session.Query<User>()
where user.Email == emailToMatch && user.Name.Contains("Adam")
select user;
答案 1 :(得分:0)
使用LINQ方法语法:
users = session.Query<Entities.User>()
.Where(user => user.Email == emailToMatch && user.ApplicationName == this.ApplicationName)
注意:如果您确实需要立即运行查询,请仅执行.ToList()。