2011-01-21 5 views
0

これはエンティティを初めて使用するときですが、通常はストアドプロシージャを使用します。私はLINQ to ADO.netエンティティ

protected IEnumerable<folder> GetFolderList() 
{ 
    using (DBEntities db = new DBEntities()) 
    { 
     var folderList = from f in db.folders where f.userId == userid select f; 
     return folderList.ToList(); 
    } 
} 

でフォルダ名を取得し、それを印刷することができますAdo.netエンティティを使用して、私が得たフォルダのフォルダIDとID、名前およびブックマークテーブルとテーブル、名前、URL

VEのデシベルにしています

<%foreach (BookmarksDBModel.folder f in folderList){%> 
    <option value="<%=f.id %>"><%=f.name %></option> 
    <%}%> 

と私はので、私は

var folderList = from f in db.folders 
        where f.userId == userid 
        select new 
        { 
         linkcount = (from b in db.bookmarks where b.folderId == f.id select b).Count(), 
         f.name, 
         f.id 
        }; 

を書いた各フォルダ内のブックマークの数を取得したいです問題は、フォルダクラスにlinkcountというプロパティがないことです。 リンクカウントを取得するには何が必要ですか?フォルダクラスに別のプロパティを追加する必要がありますか?クエリで

答えて

0

あなたが書くことができるので、あなたが実際に、匿名型を返すしている:

var folderList = from f in db.folders 
       where f.userId == userid 
       select new 
       { 
        linkcount = (from b in db.bookmarks where b.folderId == f.id select b).Count(), 
        folder = f 
       }; 

そして、あなたが情報にアクセスすることができます。

foreach(var folderResult in folderList) 
{ 
    Console.WriteLine("FolderId: " + folderResult.folder.id + ", Count: " + folderResult.linkcount); 
} 
+0

linkcountはANA匿名型と、それでありますreturn folderList.ToList();を実行しません。 – nLL

関連する問題