我是Linq的新手,我正在使用Linq-to-Sql,如下所示。但是在下面的示例中,我的where子句永远不会被执行,结果查询会尝试从我的表中获取所有记录,甚至忽略take方法。
有人可以指出我做错了吗
var baseQry = db.Table;
baseQry.Where(a => a.tab_id == theId);
baseQry.Select(o => new
{
o.name,
o.display_name,
o.type,
o.info,
time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
}).Take(10);
baseQry.ToList();
答案 0 :(得分:3)
你的第二行......
baseQry.Where(a => a.tab_id == theId);
...本质上是一个无操作,因为生成的查询不会转移到.Select子句中。
您需要将其更改为:
var baseQry = db.Table;
var results = baseQry
.Where(a => a.tab_id == theId)
.Select(o => new
{
o.name,
o.display_name,
o.type,
o.info,
time_stamp = (Convert.ToDateTime(o.timestamp).ToLongDateString())
})
.Take(10)
.ToList();