ASP.Net/VB.Net/LINQ:无法将.objectquery类型的对象强制转换为generic.list类型

ASP.Net/VB.Net/LINQ:无法将.objectquery类型的对象强制转换为generic.list类型,asp.net,vb.net,linq,Asp.net,Vb.net,Linq,我有一个关于ASP.Net和visual basic的问题 我有两个LINQ查询,第一个有效,第二个无效,生成一个 "Unable to cast object of type 'System.Data.Objects.ObjectQuery'1[SelmaV2.Products]' to type 'System.Collections.Generic.List'1[System.String]'. 代码如下: Sub GetProducts(ByRef productDropList As

我有一个关于ASP.Net和visual basic的问题 我有两个LINQ查询,第一个有效,第二个无效,生成一个

"Unable to cast object of type 'System.Data.Objects.ObjectQuery'1[SelmaV2.Products]' to type 'System.Collections.Generic.List'1[System.String]'.
代码如下:

Sub GetProducts(ByRef productDropList As DropDownList)
    Dim productList As New List(Of String)
    Using context As New SelmaEntities
        productList = (From products In context.Products
                       Order By products.Product
                       Select products.Product).Distinct.ToList()
    End Using
    productDropList.DataSource = productList
End Sub
Sub GetProductNames(ByRef ProductNamesList As List(Of String), ByVal CurrentProduct As String)
    Using context As New SelmaEntities
        ProductNamesList = (From products In context.Products
                            Where products.Product = CurrentProduct
                            Order By products.Product_no Ascending
                            Select products).ToList
    End Using
End Sub

您正在尝试获取字符串列表,但看起来您正在选择产品列表。我猜你想要像这样的东西

Select products.Product
而不是

Select products

在查询中。(您的命名也有点不幸,因为
产品
一次只会引用一个产品-我个人会将该范围变量重命名为
产品

哇,这只是我犯的一个巨大的愚蠢错误,我想获得产品。不,非常感谢,我在想,结果只会是产品。