【发布时间】:2010-07-21 13:10:13
【问题描述】:
我已经开始在 .NET 3.5 中使用 Linq-to-entities,并且遇到了一个我可以在 SQL 中轻松完成的场景,但是我在使用 linq 时遇到了很大的困难。 我在 SQL 数据库中有一个包含三个字段的表,出于本示例的目的,我将它们称为 foo、bar 和 foo_index,并像这样填充它们:
块引用
富 |酒吧 | foo_index
555 101 1
555 101 2
555 101 3
555 101 4
555 101 5
要获取最大 foo_index 处的 bar 是什么,其中 foo=555,SQL 是
SELECT bar, max(foo_index) as max_foo_index
FROM T
WHERE foo=555
GROUP BY bar
我已经在 C# 中编写了一些 linq-to-entities 代码,但我觉得那里有一个更优雅的解决方案,而且我错过了一些可以使以下内容变得更容易的概念。另外,除了 foreach 之外,还有其他方法可以从 var 中获取数据吗?
db_entity db = new db_entity();
var q =
from table in db.T
where table.FOO == 555
select new { table.BAR, table.FOO_INDEX };
var q2 =
from t2 in q
where t2.FOO_INDEX == table.Max(r => r.FOO_INDEX)
select new { t2.BAR };
int result = 0;
foreach (var record in q2}
{
result = record.BAR.Value;
}
任何帮助或指导将不胜感激,谢谢!
【问题讨论】:
标签: c# .net-3.5 linq-to-entities