我正在使用asp.net web forms 4.5版本。
我遇到linq问题。 我想带一个表数据..(我不想加入它...因为我希望它被gridview的autodelete和autoedit按钮删除和编辑)
但是我迷失了linq。
我想做这样的事情......
public Iqueryable detailGrid_getData(){
string fromDStr = fromTBox.Text;
DateTime fromD = Convert.ToDateTime(fromDStr);
string toDStr = toTBox.Text;
DateTime toD = Convert.ToDateTime(toDStr);
var items = from s in db.salesOrderDetail_T where
db.salesOrder_T
.Select(so => so.poDate <= toD && so.poDate >=fromD)
.Contatins(s.soIdx) && s.stat == stat;
return items;
}
我从这里得到了这个想法:LINQ, select ID from Table where it does not match ID in another table
但由于某种原因,它不起作用。 有人会告诉我为什么这不起作用吗?
编辑:它表示查询正文必须以select子句或group子句结尾
答案 0 :(得分:0)
此处的错误消息非常清楚。您的查询(项目)不会以select子句结束,我认为这就是您想要的:
var items = from s in db.salesOrderDetail_T where
db.salesOrder_T.Where(so => so.poDate <= toD && so.poDate >=fromD).Select(p=>p.Id).Contains(s.soIdx)
&& s.stat == stat
select s;
答案 1 :(得分:0)
我想回答这个问题,因为我认为它完全不同。 事实证明,在LINQ中,我可以通过很多方式解决问题。
这是我通过这个方式的方式.. 仍然不是LINQ的专家,而是得到它。
var items = from so in db.salesOrderDetail_T
where so.poDate <= toD && so.poDate >= fromD
select so.idx;
soIdxList = items.toList();
items = items.Where(it => soIdxList.Contains((int) it.soIdx)
然后,使用它。 再说一次,我不确定这是做事的好方法, 但它很容易且有效。