【发布时间】:2012-07-26 16:14:24
【问题描述】:
我正在尝试执行一个不包含重复的IdUser 值的查询,但不起作用。
这是我的 linq 查询:
var sql= (from u in db.USER
join c in db.CONSULT on u.IdUser equals c.IdUser
select new UsuersViewModel
{
IdUser = c.IdUser,
DateCreate=c.DateCreate,
IdTypeConsult = c.IdTypeConsult,
Sex=u.Sex
})
.Distinct();
我想要这个:
SELECT distinct CONSULT.IdUser , CONSULT.DateCreate,
CONSULT.IdTypeConsult , USER.Sex
FROM CONSULT INNER JOIN
USER ON CONSULT.IdUser = USER.IdUser
查询给出重复记录
为什么它不起作用?
【问题讨论】:
-
你没有给它任何“独特”的东西。 :)
-
请扩展“不起作用”...它会给您重复吗?它什么都不返回吗?非独特集(在
Distinct()之前)是否包含您所期望的?在不知道问题的情况下很难猜测出了什么问题...... -
是的,正如@OnlyBolivianHere 所说,在 SQL 语句中,您声明 CONSULT.IdUser 应该是不同的,在您的 LINQ 中,您是在声明每个整条记录都必须是不同的
-
@OnlyBolivianHere:你什么意思?他肯定有一个被区分的 Ienumerable...
-
@stevethethread:这不是 distinct 在 SQL 中的工作方式。它指的是整个记录集(很像
select top 10 a, b, c中的top 10指的是整个数据集)。
标签: c# linq-to-sql