读书人

求一条Linq话语

发布时间: 2013-04-20 19:43:01 作者: rapoo

求一条Linq语句
表结构如下:


create table Privates (
pmID char(12) not null,
sUserID char(7) null,--发送用户名
rUserID char(7) null,--接受用户名
pmBody nvarchar(max) null,
sTime datetime null,--发送时间
constraint PK_PRIVATES primary key (pmID)
)


我想得到的结果集是,在接受用户确定的情况下,每一个发送用户对接受用户发送信息中的时间最晚的那条记录
该怎么写Linq语句呢
[解决办法]
嗯。由于你没有说明你通过什么Linq provider来执行,所以这里主要是针对Linq to object而言的。许多provider,例如所谓的EF之类的,并不支持所有linq语法。

由于你空谈一个“表结构”,所以我怀疑你并没有使用linq to object。

如果不支持全功能的linq,那么你往往就需要“绕道”写代码。例如
var query1 = (from x in list
select x.sUserID).Distinct();
var query2 = from x in query1
let y = (from z in list
where z.sUserID == x
orderby z.sTime
select z).Last()
select y;

等等。

这里有一个知识点:如果你不是linq to object,那么就要先说明到底是什么linq provider,不要空谈“linq”这个词儿以免误会。

读书人网 >.NET

热点推荐