我在将此查询转换为LINQ格式时遇到问题:
select Version, count(distinct(idUser)) from HistoUsers
group by Version
到目前为止,我得到的是:
public static List<VersionsUsed> GetNumberOfCompaniesUsingEachVersions2()
{
var foundUsers = (from hu in sdt.DataContext.HistoUsers
group hu by new { hu.Version, hu.IdUser } into g
select new VersionsUsed { nameVersion = g.Key.Version, NumberOfCompaniesUsingThisVersion = g.Count((g.Key.IdUser).distinct()) });
return foundUsers.ToList();
}
看起来我在distinct()上遇到了语法问题,有人能帮我解决这个问题吗?提前感谢
发布于 2012-02-13 18:14:55
from hu in sdt.DataContext.HistoUsers
group hu by new { hu.Version, hu.IdUser } into g
select new VersionsUsed
{
nameVersion = g.Key.Version,
NumberOfCompaniesUsingThisVersion = g.Select(c=>c.IdUser).Distinct().Count()
}
发布于 2012-02-13 18:15:16
您可以使用LINQER来实现这一点:它从等价的SQL语句生成LINQ语句。您可以从http://www.sqltolinq.com/downloads下载10天试用版。
发布于 2012-02-13 18:15:27
可能是这样的:
select new VersionsUsed
{
nameVersion = g.Key.Version,
NumberOfCompaniesUsingThisVersion = g.Select(a=>a.IdUser).Distinct().Count())
};
https://stackoverflow.com/questions/9258632
复制相似问题