Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.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
.net 如何在EF中使用orderby子属性_.net_Linq_Entity Framework_Linq To Entities_Left Join - Fatal编程技术网

.net 如何在EF中使用orderby子属性

.net 如何在EF中使用orderby子属性,.net,linq,entity-framework,linq-to-entities,left-join,.net,Linq,Entity Framework,Linq To Entities,Left Join,我基本上想用Lambda EF写这个 select c.* from company c left join companyfeature cf on c.companyID = cf.companyID AND cf.FeatureID = 1 order by FeatureID desc, c.Name 我似乎想不出来。 在EF中,它们是公司和公司功能实体 对于克劳斯: 我从来没有说过我没有尝试过,我说我想不出来。但要证明我对你来说不是一个免费的装载者;这是我的linq声明。(是的,我

我基本上想用Lambda EF写这个

select c.* from company c
left join companyfeature cf 
on c.companyID = cf.companyID
AND cf.FeatureID = 1
order by FeatureID desc, c.Name
我似乎想不出来。
在EF中,它们是公司和公司功能实体

对于克劳斯: 我从来没有说过我没有尝试过,我说我想不出来。但要证明我对你来说不是一个免费的装载者;这是我的linq声明。(是的,我有我的FK)

这实际上是可行的,但它产生了一个不体面的SQL语句,与上面的SQL语句相比,它需要6秒的时间。所以我想我写错了。我知道有很多人比我聪明,所以我希望有人愿意分享他们的知识。提前谢谢

试试这个(注意这是C#但VB非常相似):


如果表布局上有适当的外键,则没有理由进行联接。这样,只要写下来,如果你还有问题,就发布你的尝试,而不是让别人为你写完整的解决方案,甚至不用尝试。你只需要在LINQ中制定左外连接。试试这个:如果您已经将FeatureID限制为一个值,那么按FeatureID排序有什么用?
Companies
.OrderByDescending(c => c.CompanyFeatures.Any(f => f.FeatureID == 1))
.ThenBy(c => c.Name)
 var result = 
    from Company in Companies
    from CompanyFeature in Company.CompanyFeatures.Where(cf => cf.FeatureID == 1).DefaultIfEmpty()
    orderby Company.Name
    select { Company, CompanyFeature };