实体框架选择不同的名称或值在返回列表时显示错误

时间:2013-11-04 20:24:08

标签: vb.net entity-framework entity-framework-4

以下是代码:

Public Function GetUniqueLocation() As List(Of LoginUser)
    Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function

这是代码错误!

Value of type 'System.Collections.Generic.List(Of Integer?)' cannot be converted to 'System.Collections.Generic.List(Of LoginUser)

1 个答案:

答案 0 :(得分:1)

错误消息很容易准备好:您尝试从声明为List(Of Integer)的方法返回List(Of LoginUser)。它无法发挥作用。

好像你试图为每个LoginUser属性值获得一个LocID但不是那样,你只是返回属性值的disting集合itselve。

不使用Distinct,而是使用GroupByFirst

Public Function GetUniqueLocation() As List(Of LoginUser)
    Return db.LoginUsersGroupBy(Function(p) p.LocID).Select(Function(g) g.First()).ToList()
End Function

或者,如果您真的想要返回整数,请将您的方法声明更改为List(Of Integer)多个返回类型:

Public Function GetUniqueLocation() As List(Of Integer)
    Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function