Помощь с простым оператором подсчета Linq - PullRequest
1 голос
/ 04 апреля 2011
var q = dc.tblHelpCentreQuestions.Where(c => c.userID == UserID);
q.OrderByDescending(c => c.dateSubmitted);

Это работает нормально, но мне также нужно вернуть количество записей, возвращенных из tblHelpCentreReplies, где QuestionID равно tblHelpCentreQuestions.ID. Это достаточно просто для меня в SQL, кто-то может показать мне, как это делается в LINQ to SQL?

Редактировать

Я дошел до этого:

var q = 
from question in dc.tblHelpCentreQuestions
join replies in dc.tblHelpCentreReplies on question.ID
    equals replies.ticketID
where question.userID == UserID
orderby question.dateSubmitted descending
select new { question, replies.Count() };

Но отвечает. Count () бросает:

Недопустимый член анонимного типа описатель. Члены анонимного типа должен быть объявлен с членом назначение, простое имя или член доступ.

Ответы [ 3 ]

3 голосов
/ 04 апреля 2011

запрос linq будет выглядеть следующим образом:

var q =
    dc.tblHelpCentreQuestions.
        Where(question => question.userID == UserID).
        OrderByDescending(question => question.dateSubmitted).
        GroupJoin(
            dc.tblHelpCentreReplies,
            question => question.ID,
            replies => replies.ticketID,
            (question, replies) => new {Question = question, RepliesCount = replies.Count()});

update , если у вас есть отображение отношений, чем это может быть немного проще

var q =
    dc.tblHelpCentreQuestions.
        Where(question => question.userID == UserID).
        OrderByDescending(question => question.dateSubmitted).
        Select(question => new {Question = question, RepliesCount = question.Replies.Count()});
1 голос
/ 04 апреля 2011
var q = 
from question in dc.tblHelpCentreQuestions
join replies in dc.tblHelpCentreReplies on question.ID equals replies.ticketID
where question.userID == UserID
orderby question.dateSubmitted descending
select new { Question = question, RepliesCount = replies.Count()};
1 голос
/ 04 апреля 2011

Это проще, чем вы можете себе представить: -)

var q = 
    from question in dc.tblHelpCentreQuestions
    where question.userID == UserID
    orderby question.dateSubmitted desc
    select new { question, question.Replies.Count() };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...