//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