簡體   English   中英

SQL Linq與包含列表中的項目

[英]SQL Linq with contains items from list

這是我的代碼:

CommissionCalculationDataContext dc = new CommissionCalculationDataContext();
CrossAppDataContext dc2 = new CrossAppDataContext();
List<Group_ADUser_Mapping> mapList = (from a in dc.Group_ADUser_Mappings where a.GroupID == '3' select a).ToList();
List<ADUser> userList = (from a in dc2.ADUsers where mapList.Contains(a.sAMAccountName) select a).ToList();  //doesnt work

目標是,我得到了一個映射列表,然后只需要獲取此映射列表中的User(通過SAMAccountName)

錯誤是:出現OVerload問題...。

因此,實際上我想將Group_ADUser_Mappings.sAMAccountNameADUser.sAMAAccountName進行比較。

嘗試

List<String> mapList = dc.Group_ADUser_Mappings.Where(x =>  x.GroupID == '3').Select(y => y.sAMAccountName).ToList();
List<ADUser> userList = dc2.ADUsers.Where(x => mapList.Contains(x.sAMAccountName)).ToList();

為了避免List.Contains大小寫問題,您可以隨后進行過濾。 這應該工作(未試用):

userList = userList.Where(x => mapList.Any(y => y.sAMAccountName == x.sAMAccountName)).ToList();

您可以只加入兩個實體並選擇您的ADUser嗎?

List<ADUser> userList = (from a in dc2.ADUsers 
    join b in dc.Group_ADUser_Mappings  on a.sAMAccountName equals b.sAMAccountName 
    where b.GroupID == "3" 
    select a).ToList();  

暫無
暫無

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

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