当前位置: 首页 > 编程语言 > C#

将Linq-to-Sql查询的WHERE子句作为参数传递分享

时间:2023-04-10 15:01:50 C#

C#学习教程:将Linq-to-Sql查询的WHERE子句作为参数传递我有3个选择相同信息的查询,只是where子句不同,现在我知道我可以传递一个委托,但这只允许我过滤已经返回的结果,但我想构建带有参数的查询保证效率。这是查询:从DataContext.PublishedEvents中的行在row.guid上的DataContext.PublishedEvent_EventDateTimes中加入链接等于link.container在DataContext.EventDateTimes中的加入时间在link.item上等于time.guidwhererow.ApprovalStatus=="Approved"&&row.EventType=="Event"&&time.StartDate=DateTime.Now.Date.AddDays(1))orderbytime.StartDate选择新的EventDetails{Title=row.EventName,Description=TrimDescription(row.Description)};我想传递参数应用的代码是:time.StartDate=DateTime.Now.Date.AddDays(1))这可能吗?我不这么认为,但我想先看看。谢谢,是的。vartimes=DataContext.EventDateTimes;if(cond)times=times.Where(time=>time.StartDate你可以做的是传递一个允许过滤IQueryable的对象。当你这样做时,你可以像这样编写你的服务层代码:publicPerson[]GetAllPersons(IEntityFilterfilter){IQueryablequery=this.db.Persons;query=filter.Filter(查询);返回查询.ToArray();在你的调用层,你可以这样定义一个过滤器:.Name.StartsWith("a")).Where(p=>p.Id你可以在这里找到实现这个EntityFilter的源代码(大约40行代码)和博客文章在这里。注意,你的查询是比我在这里展示的例子复杂一点,所以定义正确的过滤器可能需要更多的工作。以上是C#学习教程:PassingtheWHEREclauseofaLinq-to-SqlqueryasaparameterShared的全部内容,如果对你有用,需要了解更多C#学习教程,希望大家多多关注---本文收集自网络,不代表立场,如涉及侵权,请点击有权联系管理员删除,如有转载请注明出处: