代码之家  ›  专栏  ›  技术社区  ›  Chris Roberts

在LINQ to SQL中,如何使用“Order By”对继承类型的属性进行排序?

  •  0
  • Chris Roberts  · 技术社区  · 16 年前

    在我当前的LINQtoSQL项目中,我有一个相当标准的继承情况。我有一个名为“Party”的基类,还有一个名为“personal”和“organization”的类,它们都是从中继承而来的。

    我想要实现的似乎(而且可能是)相当简单。我想返回按公司名称排序的“组织”列表。问题是company name(“CoName”)字段是“organization”类的成员,而不是“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”类的成员。

    任何帮助都将不胜感激!

    1 回复  |  直到 16 年前
        1
  •  4
  •   David Schmitt    16 年前

    使用 OfType<>()

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