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

时间:2008-11-04 09:48:32

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

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

我想要达到的目标似乎(也可能是)相当简单。我想返回按公司名称排序的“组织”列表。问题是公司名称('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 个答案:

答案 0 :(得分:4)

使用OfType<>()运算符:

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