【发布时间】:2018-08-01 08:07:04
【问题描述】:
我是 Linq 的新手。从学习的角度来看,我正在尝试将以下 sql 查询转换为 linq 查询。然而,这没有给我任何东西。没有错误信息或任何东西。 sql 查询给了我表格,但 linq 没有给我值。 SQL 查询:
SELECT
Members.FirstName,
Members.LastName,
PhoneScreens.BaselineEligibility
FROM
Members INNER JOIN PhoneScreens ON Members.Id = PhoneScreens.MemberId
WHERE PhoneScreens.BaselineEligibility = 'eligible'
Linq 查询是:
context.Members
.Include(p => p.PhoneScreens)
.Where(y => y.PhoneScreens.BaselineEligibility == "eligible")
.ToListAsync();
编辑: 以下是课程:
public class Member
{
public string FirstName { get; set; }
public string LastName { get; set; }
public ICollection<PhoneScreen> PhoneScreens { get; set; }
public Member()
{
PhoneScreens = new Collection<PhoneScreen>();
}
}
public class PhoneScreen
{
public string BaselineEligibility { get; set; }
public Member Member { get; set; }
public int MemberId { get; set; }
}
我将不胜感激。
【问题讨论】:
-
首先请注意,您使用的是 ToListAsync,它返回一个任务。在 Members 类中如何引用 PhoneScreens 也很重要。检查this 以查看生成的请求。
-
你怎么称呼那个linq?因为它返回一个
Task<List<Member>>,所以你不能直接使用它,所以你需要展示一个更具体的例子 -
@RobertKitching 的回答是完全错误的,不知道你为什么接受这个
-
我试过后才知道。您对 Linq 查询有什么建议吗?我打算在
Where子句中添加Any。 -
@GoGo 将
ToListAsync()更改为ToList()。你为什么要添加Any- 你的代码看起来不错。随机变化不是你编程的方式。