这是我第一次使用实体,我通常使用存储过程。我正在使用Ado.net实体,在db上我有文件夹表,其中包含id,name和bookmarks表,其中包含folderid,name,url
我可以使用
获取文件夹名称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();
}
}
并用
打印 <%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的属性。 我需要做什么才能获得linkcount?我是否需要向文件夹类添加另一个属性?
答案 0 :(得分: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);
}