Преобразовать выражение запроса Linq в эквивалент синтаксиса метода - PullRequest
2 голосов
/ 19 июля 2011

Я использую LINQ, C #, EF4.

У меня есть это выражение запроса в Linq. Мне нужно преобразовать в эквивалент синтаксиса метода, но у меня есть некоторые сомнения по поводу структуры. Не могли бы вы дать мне хороший пример. Спасибо за вашу помощь.

var myContentsForAuthor = from c in context.CmsContents
                          join a in context.CmsAuthors on c.AuthorId equals a.AuthorId
                          join u in context.aspnet_Users on a.UserId equals u.UserId
                          orderby c.Title ascending 
                          where u.UserId == myUserGuid && c.IsDeleted == false && c.Title.Contains(nameSearchString)
                          select c;

1 Ответ

2 голосов
/ 19 июля 2011

Ну, это усложняется из-за прозрачных идентификаторов, но что-то вроде:

var myContentsForAuthor = context.CmsContents
                                 .Join(context.CmsAuthors,
                                       c => c.AuthorId
                                       a => a.AuthorId,
                                       (c, a) => new { c, a })
                                 .Join(context.aspnet_Users,
                                       z => z.a.UserId,
                                       u => u.UserId,
                                       (z, u) => new { z, u })
                                 .OrderBy(zz => zz.z.c.Title)
                                 .Where(zz => zz.u.UserId == myUserGuid &&
                                              zz.z.c.IsDeleted == false &&
                                              zz.z.c.Title.Contains(nameSearch))
                                 .Select(zz => zz.z.c);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...