如何将IQueryable <int>转换为'int'</int>

时间:2014-08-20 08:29:21

标签: c# asp.net asp.net-mvc

我在尝试使用userID获取模型Client的最后一条记录时遇到问题。

var user_id = (int)Membership.GetUser().ProviderUserKey;
        var client_id = from d in db.Connexions 
                        where d.userId == user_id
                        select d.ClientID;

        var lastClient = from d in db.Clients
                         where d.ClientID = client_id // here appears the error
                         select d;

对于第一个没有错误,但对于第二个请求,存在类型

的错误

3 个答案:

答案 0 :(得分:3)

var client_id = (from d in db.Connexions 
            where d.userId == user_id
            select d.ClientID).First();

答案 1 :(得分:2)

如果要检索最后一条记录,请执行以下操作:

var lastClient = (from d in db.Clients
                  where d.ClientID == client_id  <--- //here it should be "==" not "="
                  orderby d.UpdateTime descending
                  select d).FirstOrDefault();

答案 2 :(得分:1)

此代码:

var client_id = from d in db.Connexions 
                    where d.userId == user_id
                    select d.ClientID;

不返回单个int,而是返回满足给定条件的惰性int集合。 client_id.First()将为您提供该集合中的第一个ID。