【问题标题】:How do I use 'Order By' to sort on a property of an inherited type in LINQ-to-SQL?如何使用“排序依据”对 LINQ-to-SQL 中继承类型的属性进行排序?
【发布时间】:2008-11-04 09:48:31
【问题描述】:

在我当前的 LINQ-to-SQL 项目中,我有一个相当标准的继承情况。我有一个名为“Party”的基类以及继承自它的名为“Individual”和“Organisation”的类。

我想要实现的目标似乎(并且可能是)相当简单。我想返回按公司名称排序的“组织”列表。问题是公司名称(“CoName”)字段是“Organisation”类的成员,而不是“Party”类的成员。

我当前的未排序查询是...

oClients = (From P In ERM.Parties Where TypeOf (P) Is Organisation)

我想做的是这个……

oClients = (From P In ERM.Parties Where TypeOf (P) Is Organisation Order By CoName)

...但这当然不起作用,因为“CoName”属性不是“Party”类的成员。

任何帮助将不胜感激!

【问题讨论】:

    标签: vb.net linq linq-to-sql inheritance


    【解决方案1】:

    使用OfType<>() 运算符:

    ERM.Parties.OfType<Organisation>().OrderBy(p => p.CoName)
    

    【讨论】:

    • 它更像是一种方法而不是操作符。但是是的。
    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多