2012-10-05 124 views
5

我目前正在做的在LINQ嵌套查詢,但我收到一條錯誤消息:嵌套的LINQ查詢,錯誤消息

var subcatquery = from categories in mydb.Categories 
        where categories.ParentId == null 
        select new 
        { 
         category = categories.Name, 
         subcat = (from sub in mydb.Categories 
           where sub.ParentId == sub.Id 
           select new 
           { 
            subcatItem = sub.Name, 
            subcatId = sub.Id 
           }) 
        }; 

結果查看= The type '<>f__AnonymousType0<subcatItem,subcatId>' exists in both 'myapplication.dll' and 'System.Web.dll'

我不能underestand爲什麼..如果我刪除子查詢,並把它放在它自己的...這很好。

subcat類型是collection<>,這是問題所在嗎?

class categoryGroup 
    { 
     public string category; 
     public Collection<subcategoryGroup> subcat; 

    } 
    class subcategoryGroup 
    { 
     public string subcatItem; 
     public int subcatId; 

    } 
+0

你在subcat中試圖這麼做嗎?請你詳細說明它...我想你可能想要內部連接我ParentId和Id之間的子版本。不是嗎? – Usman

+0

在你的子查詢中,你得到了subcatitem名和subcatid,並且你在兩個查詢中使用相同的表名? – Rajpurohit

+0

@Rajpurohit是..它是一個指向自己的關係表。我應該指出我正在查詢同一張桌子。 – user1655940

回答

1

在我的項目,我使用子查詢這樣它的下面

var data = (from con in dbData.tblPresenters 
         where con.PresenterID == ID 
         select new 
         { 
          Name = con.Name, 

          Title = dbData.tblTitles.Where(x => x.TitleID == con.PresenterTitleID).FirstOrDefault() 
         }).ToList(); 

我認爲這將有助於你....

+1

我想我知道問題是什麼,第一個'新'匿名類與第二個'新'匿名類衝突,因爲它已經創建。我不知道解決方案是什麼... – user1655940

1

你試圖定義/名稱的類型,而不是保持他們匿名,

var subcatquery = from categories in mydb.Categories 
        where categories.ParentId == null 
        select new categoryGroup() 
        { 
         category = categories.Name, 
         subcat = (from sub in mydb.Categories 
           where sub.ParentId == sub.Id 
           select new subcategoryGroup() 
           { 
            subcatItem = sub.Name, 
            subcatId = sub.Id 
            }) 
        }; 
+0

我試過這個,它不允許我編譯。在這個語句中有一個錯誤:select new subcategoryGroup() – user1655940