簡體   English   中英

C#Linq從一個到多個選擇,但是如果多個是假,請不要返回

[英]C# Linq Select from one to many but if in the many one is false dont return

抱歉要求我嘗試搜索類似的查詢,但沒有結果,或者我不知道在尋找什么,所以這里的問題是:

User_Table主鍵的兩個表作為外鍵位於Message_Tabel中。每個消息都有一個代碼,並且是一個isReplyed(true,false)

現在我該如何檢索其郵件具有特定代碼並且沒有被回復的用戶

例:

UserTabel                            
==========            
ID 1                 
ID 2                
ID 3                 
ID 4                 
ID 5                
ID 6                
ID 7                 
ID 7                 



                Message_Tabel             
           =============================================
            ID 1       Code 22X      Replied False   MID 1
            ID 1       Code 20X      Replied False   MID 2
            ID 1       Code 22X      Replied true    MID 3
            ID 1       Code 22X      Replied False   MID 4
            ID 2       Code 22X      Replied False   MID 5
            ID 3       Code 22X      Replied true    MID 6
            ID 2       Code 22X      Replied False   MID 7
            ID 2       Code 22X      Replied False   MID 8

查詢所有用戶,將檢索到代碼為22X的消息,但沒有答復:按用戶ID分組的消息將檢索ID為2而不是ID為1或3的User的所有消息,因為已經使用該代碼進行了答復。

我想要這樣,以便任何用戶都可以發送帶有特定代碼的郵件,但我將使用該代碼對每封郵件回復一次,而忽略其余郵件

我希望這一切有意義

謝謝您的幫助

這樣的事情可能會達到目的(未經測試):

        var users = context.Messages
            .Where(m => m.Code == "22X")
            .GroupBy(m => m.User)
            .Where(m => m.All(x => x.Replied == false))
            .Select(p => p.Key);

那應該返回符合您期望的用戶。 如果需要,您也可以更改查詢以返回消息,以便選擇要回復的消息。

暫無
暫無

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

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