LINQ to ADO.net Entities - PullRequest
       22

LINQ to ADO.net Entities

0 голосов
/ 21 января 2011

это первый раз, когда я использую сущности, я обычно использую хранимые процедуры.Я использую Ado.net Entities и на БД у меня есть таблица папок с id, именем и таблицей закладок с 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?Нужно ли добавлять другое свойство в класс папок?

1 Ответ

0 голосов
/ 21 января 2011

В вашем запросе вы фактически возвращаете анонимный тип, поэтому вы можете написать:

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...