[英]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.