【问题标题】:Converting SQL Query to LINQ for EntityFramework为 EntityFramework 将 SQL 查询转换为 LINQ
【发布时间】:2013-01-23 11:41:32
【问题描述】:

我在将以下查询转换为 EF 时遇到问题:

SELECT DISTINCT
[CompanyId]
,[CompanyNumber]
,[ReturnsLastMadeUpDate]
FROM [CHX].[dbo].[CompanyDetailsDailyDump]
WHERE [InsertDate] BETWEEN '2012-12-19' and '2013-01-20'
ORDER BY [ReturnsLastMadeUpDate] DESC

主要问题在于 Distinct()。如何选择以上三个特定列来比较不同的列而不是所有列。 问候

【问题讨论】:

  • 你用谷歌搜索了吗? .Distinct() 似乎是答案。我为什么要让你用谷歌搜索?
  • 是的,但是 distinct 会比较所有可用的列,而不是只比较三个。如果只选择特定的列,这也可以解决问题。

标签: sql linq entity-framework linq-to-entities


【解决方案1】:

您只需要在所有其他操作之后应用 Distinct。即:

CompanyDetailsDaily
    .Where(x => x.InsertDate < DateTime.Parse('2013-01-20') && 
            x.InsertDate > DateTime.Parse('2012-12-19'))
    .OrderBy(x => x.ReturnsLastMadeUpDate)
    .Select(x => new{x.CompanyID,x.CompanyNumber,x.ReturnsLastMadeUpDate})
    .Distinct();

注意包含日期(>//

【讨论】:

  • 非常感谢,拯救了这一天。
  • 不客气!欢迎来到 Stack Overflow。不要忘记接受和/或投票您喜欢的问题的答案。
猜你喜欢
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2012-02-17
  • 2017-02-23
  • 2020-07-19
  • 1970-01-01
相关资源
最近更新 更多