簡體   English   中英

如何將此 SQL 語句轉換為用於 C# 的 Linq

[英]How to convert this SQL statement to Linq for C#

我正在嘗試將我的簡單 SQL 語句轉換為我的 C# 應用程序的 Linq 格式,但我似乎總是在努力進行轉換。 我下載了 linqpad 並一直在玩它,但我仍然遇到正確格式的問題。

我的 SQL 語句:

SELECT distinct PictureCity, PictureState
FROM Website_Gallery
GROUP BY PictureCity, PictureState, PictureDate
ORDER BY PictureCity, PictureState

結果按 PictureCity 排序,如下所示:

Abington    MA
Acton   MA
Acushnet    MA
Agawam  MA
Andover MA
Arlington   MA
Arlington   TX
Ashby   MA
Ashland MA

到目前為止,我在 C# 應用程序中的內容似乎無法開始工作。 (我很討厭 linq)。

var Results = _context.Website_Gallery
.(g => g.PictureCity, g => g.PictureState).AsEnumerable()
.Select g
.GroupBy(g => g)

似乎你只需要

var results = _context.Website_Gallery
    .OrderBy(x => x.PictureCity)
    .ThenBy(x => x.PictureState)
    .Select(x => new { x.PictureCity, x.PictureState })
    .Distinct();

這將等同於以下 SQL

SELECT distinct PictureCity, PictureState
FROM Website_Gallery
ORDER BY PictureCity, PictureState

因為你所擁有的不需要組

請注意,然后您可以在foreach迭代該結果,也可以將ToList到末尾以將查詢具體化到內存中。

SQL

SELECT distinct PictureCity, PictureState
FROM Website_Gallery
ORDER BY PictureCity, PictureState

林克

var Results = _context.Website_Gallery
                  .Select(g => new { g.PictureCity, g.PictureState })
                  .Orderby(p => p.PictureCity).ThenBy(p => p.PictureState)
                  .Distinct().ToList();

或者你也可以這樣做

var Results = _context.Website_Gallery
            .GroupBy(x => new { PictureCity = x.PictureCity, PictureState = x.PictureState })
            .Select(g => new { g.Key.PictureCity, g.Key.PictureState }).Orderby(p => p.PictureCity).ThenBy(p => p.PictureState)
            .ToList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM