将Linq查询表达式转换为等效的方法语法
我使用LINQ、C#、EF4 我在Linq中有这个查询表达式。我需要在方法语法中转换为等效的语法,但我对指令有一些疑问。你能给我举个好例子吗。谢谢你的帮助将Linq查询表达式转换为等效的方法语法,linq,entity-framework,Linq,Entity Framework,我使用LINQ、C#、EF4 我在Linq中有这个查询表达式。我需要在方法语法中转换为等效的语法,但我对指令有一些疑问。你能给我举个好例子吗。谢谢你的帮助 var myContentsForAuthor = from c in context.CmsContents join a in context.CmsAuthors on c.AuthorId equals a.AuthorId joi
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;
由于透明的标识符,这会变得复杂,但类似于:
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);
感谢John的回复,透明标识符是什么意思?@GibboK:在评论中解释起来很难-阅读我关于查询翻译的博客文章:再次感谢Jon的时间Jon抱歉,如果我想更新.OrderBy(zz=>zz.z.c.Title),我还有一个dobt相反,c.Description或另一个动态使用字符串变量(如“sortExpression”)的字段将起作用??我用这个code.OrderBy(zz=>“zz.z.c.”+sortExpression)替换,但不起作用。你能帮我一下吗?我非常感激。谢谢你的帮助help@GibboK:那是一个完全不同的问题。听起来你在追求Dynamic Linq: