В коде прокомментированная часть - это то, что мне нужно решить ... Есть ли способ написать такой запрос в LINQ? Мне нужно это, потому что мне потребуется сортировка на основе состояния.LINQ - если условие
var result = (
from contact in db.Contacts
join user in db.Users on contact.CreatedByUserID equals user.UserID
join deal in db.Deals on contact.ContactID equals deal.ContactID into deals
orderby contact.ContactID descending
select new ContactListView
{
ContactID = contact.ContactID,
FirstName = contact.FirstName,
LastName = contact.LastName,
Email = contact.Email,
Deals = deals.Count(),
EstValue = deals.Sum(e => e.EstValue),
SalesAgent = user.FirstName + " " + user.LastName,
Tasks = 7,
// This is critical part
if(Deals == 0) Status = "Prospect";
else
Status = "Client";
// End of critical part...
})
.OrderBy(filterQuery.OrderBy + " " + filterQuery.OrderType)
.Where(filterQuery.Status);
все, кроме того, что это должно быть deal.Count() вместо сделки. Что, если у меня будет более двух случаев, есть ли возможность сделать это? Спасибо! –
@ile - Абсолютно, вам просто нужно использовать некоторую скобку .. Статус = (Deals.Count() == 0? "Нет сделок": (Deals.Count() == 1? "Одна сделка": "Многие сделок ")) –
Я вижу ... это действительно здорово! Благодаря! –