Итак, я снова застрял ...LINQ Join/Grouping issues
У меня есть три таблицы, которые я пытаюсь объединить и группировать с помощью linq; Компания, уведомления и запросы.
У компании может быть много уведомлений.
Уведомление имеют SubcategoryId и CompanyID
Запрос иметь SubcategoryId.
Моя цель здесь, чтобы получить список компаний, так и для каждой компании получить список своих замеченных подкатегорий и каждый заметил Подкатегория запросов в пределах этой подкатегории
Ex: Компания х является мониторинг подкатегорий 4 и 7. Покажите ему, какие запросы у нас есть в этих подкатах.
Так я делаю это только для одной компании. Но я не могу решить группировку и присоединяюсь, когда мне нужен список нескольких компаний.
Company company = db.Companies.Where(x=>x.UserId == 10).FirstOrDefault();
var requestByNotices =
from notice in company.Notices
join request in db.Requests.Where(z => z.IsApproved &
z.Status.Status == "Active") on notice.SubcategoryId equals
request.Subcategoryid
UPDATE
Позвольте мне перефразировать мои вопросы.
Этот запрос производит таблицу с результатами, которые я ищу:
SELECT Companies.CompanyId, Companies.Name, Account.Email, Notices.SubcategoryId, Requests.FriendlyName FROM Companies
INNER JOIN Notices ON Companies.CompanyId = Notices.CompanyId
INNER JOIN Account ON Account.UserId = Companies.Uid
INNER JOIN Requests ON Notices.SubcategoryId = Requests.Subcategoryid
WHERE Requests.StartDate > '2013-12-22';
Но вместо того, чтобы генерировать плоский список, я хотел бы перевести это в LINQ, но и группе CompanyID. Поэтому каждая компания представлена только одной строкой, и внутри этой компании я могу получить запросы.
Так вместо списка, как это:
CompanyId Name Email SubcategoryId FriendlyName
1 Test [email protected] 2 x
1 Test [email protected] 4 y
Я хотел бы иметь это так:
CompanyId Name Email GroupOfRequests
1 Test [email protected] contains two
благодарным за любую помощь!
Хмм Я пытаюсь построить на этом но это не сработает. gg.Any() генерирует ошибку, и если я удалю ее, я получаю одну строку для каждой компании и подкатегорию извещения. – Josef
Я обновил свой вопрос с некоторым уточнением – Josef
@Josef Я обновляю свой ответ, попробуйте его посмотреть – Grundy