Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将带有联接的SQL查询转换为lambda表达式_C#_Sql_Entity Framework_Linq To Entities_Sql To Linq Conversion - Fatal编程技术网

C# 将带有联接的SQL查询转换为lambda表达式

C# 将带有联接的SQL查询转换为lambda表达式,c#,sql,entity-framework,linq-to-entities,sql-to-linq-conversion,C#,Sql,Entity Framework,Linq To Entities,Sql To Linq Conversion,不确定如何将以下sql转换为lambda表达式。我的数据库以1对多关系使用与表内容\u培训相关的引用完整性和表内容(1个内容可以有多个内容\u培训) 请尝试以下查询: var results = (from c in dbcontext.Contents join ct in dbcontext.Content_Trainings on c.ContentId equals ct.ContentId into t from rt in

不确定如何将以下sql转换为lambda表达式。我的数据库以1对多关系使用与表内容\u培训相关的引用完整性和表内容(1个内容可以有多个内容\u培训)

请尝试以下查询:

var results = (from c in dbcontext.Contents
               join ct in dbcontext.Content_Trainings on c.ContentId equals ct.ContentId into t
               from rt in t.DefaultIfEmpty()
               select new
               {
                   c.ContentId,
                   c.Name,
                   TrainingTypeId = (int?)rt.TrainingTypeId
               }).OrderBy(r => r.TrainingTypeId)
                 .ThenBy(r => r.Name);

我会经常使用查询语法,而不使用lambdas,即,
orderby x,y
。它会更可读。谢谢Abatishchev。在过去,我使用了“let”关键字,而不是您使用的“into t…t.DefaultIfEmpty()”。有什么区别?
var results = (from c in dbcontext.Contents
               join ct in dbcontext.Content_Trainings on c.ContentId equals ct.ContentId into t
               from rt in t.DefaultIfEmpty()
               select new
               {
                   c.ContentId,
                   c.Name,
                   TrainingTypeId = (int?)rt.TrainingTypeId
               }).OrderBy(r => r.TrainingTypeId)
                 .ThenBy(r => r.Name);