第一回接触Linq,求大神指点指点
第一次接触Linq,求大神指点指点。
现在我已经错得很离谱的就是from result in dt.AsEnumerable() where Sqlw select result这一段的Sqlw 根本不是这么拼的,
但是我Linq基础基本为0,完全不知道这样的问题该怎么解决。还有我这样Linq的写法有错误吗?
也不要跟我说什么不懂就先去看基础资料,我要不是赶时间,我真的就抱着书从头啃了。
------解决方案--------------------
你把linq的lambda表达式跟本身的ef linq写法混淆了
1.
2.
------解决方案--------------------
sqlw就是查询条件
------解决方案--------------------
我明白你的意思,你的需求,简单点可以通过拼接查询条件来实现:
http://blog.****.net/q107770540/article/details/5724013
string Sqlw = " 1==1 ";
if (typeid > 0)
Sqlw = "&& result => result.Field<int>(\"typeid\")==" + typeid;
if (quest != "")
{
//这一段是我自作主张改的一个非空查询或者模糊查询的方法,
//quest是一个传参。如果为"name"或者"name|"就代表我这个name字段不能为空
//如果quest传过来为"name|123"就代表我要根据"123"来对name字段做模糊查询。
string[] arr = quest.Split('|');
if (arr.Length > 2)
{
if (arr[1] != "")
{
Sqlw = "&& result => result." + arr[0] + ".Contains('" + arr[1] + "')";
}
else
Sqlw = "&& result => result.Field<string>(\"" + arr[0] + "\")!= \"\"";
}
else
Sqlw = "&& result => result.Field<string>(\"" + arr[0] + "\")!= \"\"";
}
var x = from result in dt.AsEnumerable() where Sqlw select result;
现在我已经错得很离谱的就是from result in dt.AsEnumerable() where Sqlw select result这一段的Sqlw 根本不是这么拼的,
但是我Linq基础基本为0,完全不知道这样的问题该怎么解决。还有我这样Linq的写法有错误吗?
也不要跟我说什么不懂就先去看基础资料,我要不是赶时间,我真的就抱着书从头啃了。
------解决方案--------------------
你把linq的lambda表达式跟本身的ef linq写法混淆了
1.
var q = from result in table where result.a == a select result
2.
var q = table.Where(e=>e.a == a).Select()
------解决方案--------------------
sqlw就是查询条件
------解决方案--------------------
我明白你的意思,你的需求,简单点可以通过拼接查询条件来实现:
http://blog.****.net/q107770540/article/details/5724013