如何在Entity框架中的OrderBy引用表列

时间:2014-01-13 08:41:10

标签: sql database linq entity-framework

我有2个参考表,如:Order& Product
我正在使用EF。现在我有一个页面显示如下:

OrderNo | OrderDate |产品名称|价


Product表(ProductID)有一个外键,我显示o.Product.ProductName
现在我想按产品表中的产品名称列出OrderBy列表。
我该怎么做?
仅供参考:ProductID表中OrderNullable

提前致谢

2 个答案:

答案 0 :(得分:3)

好像您在Product

中有一个导航属性Order

所以你可以做到

.OrderBy(o => (o.Product == null) ? string.Empty : o.Product.ProductName)

你也可以两次通过

.OrderByDescending(o => o.Product == null) //or OrderBy, depending if you want null first or last
.ThenBy(o => (o.Product == null) ? string.Empty : o.Product.ProductName); 

答案 1 :(得分:1)

在更复杂的情况下,代码可能看起来像这样

.OrderByDescending(x => 
    !x.CONTACTPERSON.Any() 
        ? 0 
        : x.CONTACTPERSON.Max(
            y => !y.INTERACTIONENTRY.Any()
            ? 0
            : y.INTERACTIONENTRY.Max(z => z.InteractionEntryID)) 
    )