Ниже мой LINQКак получить имя документа в этом LINQ?
IQueryable<DocumentMapper> query = (from c in entities.tTOCStructures
join e in entities.tUsers on c.CreatedBy equals e.UserUID
group c by c.FolderID into docs
where documentIds.Contains(docs.Key)
select new DocumentMapper()
{
//DocumentName = Document Name
//Owner = e.FirstName + " " + e.LastName,
Editors = (from f in entities.tUsers join g in entities.tCheckoutViewUsers on f.UserUID equals g.ViewUserid where g.IsEditor == true && documentIds.Contains(g.DocumentID) select (f.FirstName + " " + f.LastName)),
Approvers = (from f in entities.tUsers join g in entities.tCheckoutViewUsers on f.UserUID equals g.ViewUserid where g.IsApprover == true && documentIds.Contains(g.DocumentID) select (f.FirstName + " " + f.LastName)),
Reviewers = (from f in entities.tUsers join g in entities.tCheckoutViewUsers on f.UserUID equals g.ViewUserid where g.IsReviewer == true && documentIds.Contains(g.DocumentID) select (f.FirstName + " " + f.LastName))
});
documents = query.ToList<DocumentMapper>();
Как получить имя документа & Владелец в приведенном выше LINQ.
Отношение, как показано ниже: -
Один документа будет иметь один документ Имя & Владельца, но несколько редакторов, утверждают Рецензент.
Класс: -
public class DocumentMapper
{
public string DocumentName { get; set; }
public string Owner { get; set; }
public IEnumerable<string> Editors { get; set; }
public IEnumerable<string> Reviewers { get; set; }
public IEnumerable<string> Approvers { get; set; }
}
Если какое-либо предложение по улучшению этого LINQ, хотелось бы услышать
Не видя своих моделей, вы действительно не можете вам помочь. Единственное, что я могу сказать, это то, что ваши подзапросы для редакторов/утвердителей/рецензентов будут сильно неэффективными. – zaitsman
@zaitsman, не могли бы вы рассказать, как я могу улучшить это? –
@zaitsman, я добавил Model –