如何将此SQL转换为Linq?[已关闭]

gblwokeq  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(175)
    • 已关闭**。此问题需要超过focused。当前不接受答案。
    • 想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

21小时前关门了。
Improve this question
我有下面的SQL查询,我需要把它转换成linq和lambda表达式。我该怎么写呢?我是EF新手。
请帮我把这个查询的想法转换。

SELECT 
    td.Message, td.AddedTime,
    u.FirstName, u.LastName,
    b.BranchName, 
    e.FirstName, e.LastName 
FROM 
    DataHistory td
INNER JOIN 
    [USER] u ON td.FkSender = u.UserId
INNER JOIN 
    [Branch] b ON td.FkBranchId = b.BranchId
INNER JOIN 
    [Entry] e ON td.FkEntryId = e.EntryId
WHERE 
    td.addedDate >= '2013-01-03' 
    AND td.addedDate <= '2013-01-04'

另外,检索数据后,需要将u.FirstName, u.LastName连接为userFullName,将e.FirstName, e.LastName连接为EmployeeFullName
我怎样才能同时使用linq和lambda呢?

ztyzrc3y

ztyzrc3y1#

假设您已经正确定义了导航属性,并且匿名列表也是可以的,那么就很容易预测:

context.DataHistories
    .Select(dh => new {
        Message = td.Message,
        AddedTime = td.AddedTime,
        FirstName = td.User.FirstName,
        LastName = td.User.LastName,
        BranchName = td.Branch.BranchName,
        EntryFirstName = td.Entry.FirstName,
        EntryLastName = td.Entry.LastName
    })
    .Where(dh => dh.addedDate >= startDate && dh.addedDate <= endDate)
    .ToList();

相关问题