【发布时间】:2014-07-22 10:20:47
【问题描述】:
您好,我有以下 LINQ 查询,我正在尝试排序并选择不同的值。
var records = (from c in db.pt
join y in db.pro on c.id equals y.id
where c.id == id
select new proj
{
id = cid,
newStructure = new List<team>
{
new teamP
{
t_id = c.p_id,
full_name = c.per.last_name + " ," + c.per.last_name,
}
}
}).ToList().OrderBy("full_name").distinct();
在上面关于 OrderBy 的查询中,我得到智能错误“无法从用法中推断出来。尝试明确指定类型参数” 请让我知道如何解决此错误。谢谢
【问题讨论】:
-
一条评论 - 对
ToList的调用会将所有数据拖到您的流程中,此时您将在本地订购和区分。这是故意的吗,因为您真的应该让您的数据库执行订单并且与众不同。 -
1. 为什么需要
y in db.pro?加入有什么作用? (它是一个内部连接,所以它可以是一个过滤器 - 这是故意的吗?)2. 类和属性应该使用 PascalCase:proj、team、last_name等。你可能有你自己的约定,但很尴尬3.OrderBy和Distinct有什么意义?我怀疑Distinct保证保持订单,所以这没什么用:LINQ to SQL does not generate ORDER BY when DISTINCT is used?
标签: c# linq entity-framework