如何在EF中订购子女财产



我基本上想用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中,它们是Companies & &;CompanyFeatures实体

老人的

: 我从没说过我没试过,我是说我想不明白。但为了证明我不是你的白吃白喝;这是我的linq声明。(是的,我有我的位置)

Companies
.OrderByDescending(c => c.CompanyFeatures.Any(f => f.FeatureID == 1))
.ThenBy(c => c.Name)

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

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

 var result = 
    from Company in Companies
    from CompanyFeature in Company.CompanyFeatures.Where(cf => cf.FeatureID == 1).DefaultIfEmpty()
    orderby Company.Name
    select { Company, CompanyFeature };

相关内容

  • 没有找到相关文章

最新更新