[英]c# linq: getting a list of results filtered by values in a list
我在下面有以下語句(略微縮寫,因為我希望更改名稱以便在此處發布它們)。 本質上,我有一個特定的用戶ID,並且想要過濾哪些用戶創建的文件夾不是由該用戶創建的,而是以他的文件夾之一作為父文件夾。
編輯:到目前為止的代碼(數據庫中的目錄包含int DirectoryId,int ParentDir,String UserId,String Path),這里的Directory定義
public partial class Directory
{
public int DirectoryId { get; set }
public Nullable<int>ParentDir {get; set;}
public string UserId { get; set; }
public string Path { get; set; }
}
這里的代碼:
public static List<Directory> GetAllNonUserDirs(string userId)
{
MYEntities entity = new MYEntities();
List<int> DirectoriesOfUser = (from i in entity.Directory
where (i.UserId == userId)
select i.DirectoryId).ToList();
return (from i in entity.Directory where (i.UserId != userId && i.ParentDir.HasValue
&& DirectoriesOfUser.Contains(i.ParentDir.Value)) select i);
}
現在的問題是,sas錯誤“無法將類型'System.Linq.IQueryable <....>隱式轉換為System.Collecitions.Generic.List <....>。
我的問題是如何解決此問題(這是由我已經確定的包含部分引起的),還是有一種更簡單的方法來執行linq語句?
注意:Writeerrors可能發生,因為我沒有復制代碼,而是在這里重寫了代碼。
在要返回的LINQ
之后添加ToList()
。 如下所示:
public static List<Directory> GetAllNonUserDirs(string userId)
{
MYEntities entity = new MYEntities();
List<int> DirectoriesOfUser = (from i in entity.Directory
where (i.UserId == userId)
select i.DirectoryId).ToList();
return (from i in entity.Directory where (i.UserId != userId && i.ParentDir.HasValue
&& DirectoriesOfUser.Contains(i.ParentDir.Value)) select i).ToList();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.