//my question is here
public static Query Where<TElement>(this Query query, Func<TElement, bool> predicate)
{
query.sql +=" FROM Table WHERE "+ predicate+";";
return query;
}
//Query class
public class Query
{
public Query(){}
public Query(string sql){this.sql = sql;}
public string sql { set; get; }
}
//User class
public class User
{
public int ID { get; set; }
public string Name { get; set; }
}
//example:
User user = new User() { ID=1,Name="test"};
Query query = new Query();
query = query.Where<User>(u=>u.ID==user.ID);
Console.WriteLine(query.sql);
运行后,其结果是:约Func键<TElement,bool>的谓词
FROM Table WHERE System.Func'2[DAL.User,System.Boolean]';
但我需要的是:
FROM Table WHERE ID=1;
有人能帮助我吗?
你能解释这部分是在哪里进来吗? 'U => u.ID == user.ID'。你只想给这个ID,如果它匹配,否则你想要什么? – 2011-03-06 03:06:37
首先,如果你想解析谓词,它必须是'Expression>'类型,我的下一个问题是你的目标是什么?如果你正在使用Linq To Sql的问题标签陈述你为什么要重新创造'Where'? –
2011-03-06 03:10:43
我想知道linq怎么做 – artwl 2011-03-06 03:12:32