【问题标题】:Convert SQLServer sql to Linq将 SQLServer sql 转换为 Linq
【发布时间】:2016-06-20 02:05:38
【问题描述】:

我有一个 SQL 来查看表主数据和详细信息。如何转换为 linq。请帮助我:

Select B.idchatuser,B.Nama, B.Hp,
(select TOP 1 CreatedTime from ChatUserConversation 
where IdChatUser = B.IdChatUser order by CreatedTime) CreatedTime
from ChatUser B 
order by CreatedTime desc

【问题讨论】:

  • 你试过 Linqer sqltolinq.com 吗?
  • 请尝试一下,阿利。我们不是代码编写服务。查询比较简单,应该可以入手了。
  • @Kason :感谢您的解决方案,我已经下载并尝试了 Linqer。但是我不明白怎么用

标签: c# asp.net sql-server entity-framework linq


【解决方案1】:

这个怎么样?

from B in ChatUser
join C in ChatUserConversation on B.IdChatUser equals C.IdChatUser
group new {B,C} by new {B.IdChatUser, B.Nama, B.Hp} into g
let CreatedTime = g.OrderBy(x=>x.C.CreatedTime).Select(x=>x.C.CreatedTime).FirstOrDefault()
orderby CreatedTime descending
select new 
{
    IdChatUser = g.Key.IdChatUser, 
    Nama = g.Key.Nama, 
    Hp = g.Key.Hp, 
    CreatedTime = CreatedTime
}

【讨论】:

  • 谢谢,,,这项工作,但结果不是按 CreatedTime 降序排列的
【解决方案2】:

假设您有 ChatUserChatUserConversation C# 实体,您可以这样做。

var results = ChatUser.Select(x=> new 
         {
             x.idchatuser,
             x.Name,
             x.Hp,
             CreatedTime =  ChatUserConversation .Where(c=> c.IdChatUser = x.IdChatUser)
                                                 .Max(c=>c.CreatedTime)  
         })
        .ToList(); 

【讨论】:

  • 我试过这个解决方案,但不知道如何解析结果来查看。我使用 asp.net mvc C#
  • 您的意思是查询正在运行,但不知道如何在视图中使用它?
  • 我不知道工作与否,因为当我调试时我看到错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-24
相关资源
最近更新 更多