LinqtoSqlAnyKeywordSearchQuery我在我的应用程序中有一个案例,用户可以搜索术语列表。搜索按以下顺序进行三遍:本质上,我如何告诉它在LinqtoSql中执行此操作:select*fromstuffswheres.Titlelike'%blah%'||s.Titlelike'%woo&'||s.Titlelike'%fghwgads%'||s.Titlelike...等等?这可能很难……我认为您必须编写自己的运算符。(更新:是的,我测试过它并且有效。)publicstaticclassQueryExtensions{publicstaticIQueryableLikeAny(thisIQueryablequery,Expression>selector,IEnumerablevalues){if(selector==null){thrownewArgumentNullException("selector");}if(values==null){thrownewArgumentNullException("values");}if(!values.Any()){返回查询;}varp=selector.Parameters.Single();varconditions=values.Select(v=>(Expression)Expression.Call(typeof(SqlMethods),"Like",null,selector.Body,Expression.Constant("%"+v+"%")));varbody=conditions.Aggregate((acc,c)=>Expression.Or(acc,c));返回query.Where(Expression.Lambda>(body,p));然后你可以这样称呼它:string[]terms=newstring[]{"blah","woo","fghwgads"};varresults=stuff.LikeAny(s=>s.Title,terms);PS您需要将System.Linq.Expressions和System.Data.Linq.SqlClient命名空间添加到QueryExtensions类的命名空间。以上就是C#学习教程的全部内容:LinqtoSql任意关键字搜索查询分享,如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文收藏来自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处:
