我有兩個清單。一個是來自資料庫的 AppUser 型別,另一個是作為引數傳入的 customer 型別。這是類定義。
public class AppUser
{
public int Id{get;set;}
public string Name{get;set;}
public IEnumerable<Customer> customers{get;set;}
}
public class Customer
{
public int Id{get;set;}
public string Name{get;set;}
public IEnumerable<User> users{get;set;}
}
我正在嘗試創建一個 API 端點,該端點將允許一個人傳入客戶串列并取回該客戶串列的資料庫中的所有唯一用戶。所以我有一個用戶串列屬性,需要將其與傳遞給 API 的客戶串列進行比較。我下面的代碼,但它不起作用。我對linq有點陌生,所以真的很困惑。
var joinUsers = repoUsers.Join(
customers,
uObj => uObj,
cObj => cObj,
(uObj, cObj) => uObj
);
repoUsers 是我的資料庫用戶串列,每個用戶都有一個客戶串列作為屬性。
客戶是傳遞給我的 API 的客戶串列。
與傳入的客戶串列相比,如何使用它的客戶串列屬性加入我的 repoUsers 物件,并回傳與客戶串列中的客戶匹配的 repoUsers?
任何幫助將不勝感激,因為我正面臨最后期限并且正在苦苦掙扎。蒂亞!
uj5u.com熱心網友回復:
將您的輸入投影到一個IEnumerableID,然后Contains使用Customer.Id. 完成使用SelectMany聚合每個客戶的Users屬性,然后Distinct洗掉重復項
var cutomerIDs = customers.Select( c => c.Id );
var usersQuery = dbContext.Customers
.Where( c => customerIDs.Contains( c.Id ) )
.SelectMany( c => c.Users )
.Distinct();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/416947.html
標籤:
