“拼接”linq查询

简介:
static void Main( string[] args)
        {
             List< Person> list =  new  List< Person>() { 
                 new  Person(){ Age=20, Name= "wengyuli", Parts= new  Part(){ Name= "123"}},
                 new  Person(){ Age=30, Name= "chenyang", Parts= new  Part(){ Name= "123456"}},
                 new  Person(){ Age=40, Name= "heshuai", Parts= new  Part(){ Name= "123"}},
                 new  Person(){ Age=50, Name= "heyunlong", Parts= new  Part(){ Name= "123456"}}
            };

             var c =  Expression.Parameter( typeof( Person),  "m");

             Expression condition =  Expression.Constant( false);


             Expression con =  Expression.Call(
                 Expression.Property(c, typeof( Person).GetProperty( "Name")),
                 typeof( string).GetMethod( "StartsWith", new  Type[]{ typeof( string)}),
                 Expression.Constant( "wengyuli"));

            condition =  Expression.Or(con, condition); 
             Expression< Func< Personbool>> end =  Expression.Lambda< Func< Personbool>>(condition,  new  ParameterExpression[] { c });
        }
        
         class  Person
        
{
             public string Name {  setget; }
             public int Age {  setget; }
             public  Part Parts {  setget; }
        }

         class  Part
        
{
             public string Name {  setget; }
        }
    }

 

     本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/586676,如需转载请自行联系原作者



相关文章
|
SQL .NET C#
用LINQ在集合中查询特定对象
这里是原文出处: 简单的概括LINQ LINQ是Language-Integrated Query的缩写,是C# 3.0和VB 9.0中新加入的语言特性,可以在编程时使用内置的查询语言进行基于集合的操作。
855 0
|
SQL .NET 开发框架
Linq SQL 动态个数where查询
Linq SQL 动态个数where查询,从parts表中查找工件类型ID为1、2或6...(个数不定)的所有part。
8450 0
|
机器学习/深度学习 .NET
|
.NET 开发框架 存储