【问题标题】:In linq how to access properties of objects in a list在 linq 中如何访问列表中对象的属性
【发布时间】:2016-12-19 14:56:20
【问题描述】:

我正在尝试使用实体框架和 linq 完成此 sql 查询:

SELECT DISTINCT Users.ID as UserID, Users.FirstName, Users.Surname, Users.ADID 
FROM Users INNER JOIN Journals ON Users.ID = Journals.UserID
WHERE(((Journals.CompanyID) = {1})       

所以我需要用户(用户有一个期刊列表),其中 Journals.Company.CompanyID(每个期刊都有一个固定的公司)等于某个 CompanyID。

我正在努力为此创建一个 linq 查询。

【问题讨论】:

  • LEFT JOIN 并在 where 中添加条件?
  • context.Users.Where(u=>u.Journals.CompanyID == id);如果我正确地想象你的数据上下文,查询应该是这样的。
  • 请发布您尝试过的示例。
  • 直接从from u in db.Users from j in u.Journals 开始,现在您可以通过变量j 访问Journal 属性,例如j.Company
  • 不知道加入或使用 2 个“来自”。如何实现不同的价值观?

标签: c# entity-framework linq


【解决方案1】:

您可以尝试如下所示。这里db 是您的上下文。

(from u in db.Users
join j in db.Journals on u.ID equals j.UserID
where j.CompanyID == 1
select u).Distinct().ToList();

【讨论】:

    【解决方案2】:
    db.Users.Where(u => u.Journals.Any(j => j.CompanyID == 1))
    

    这是我的首选方式,因为您不需要使用独特的逻辑(在处理对象时感觉很奇怪)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-22
      • 1970-01-01
      • 1970-01-01
      • 2015-08-12
      • 1970-01-01
      • 1970-01-01
      • 2014-03-16
      • 2016-12-04
      相关资源
      最近更新 更多