Linq to sql 无法从匿名类型隐式转换为泛型列表

Linq to sql 无法从匿名类型隐式转换为泛型列表,linq-to-sql,return,anonymous-types,Linq To Sql,Return,Anonymous Types,三张表: Category - CID, CName,CParentID (when CParentID=0, its a Category; when CParentID > 0, its a SubCategory) Product - PID,Title, Desc etc Category_Product - CPID, CID, PID 功能: public List<T> GetProductCategory<T>(int id)

三张表:

Category - CID, CName,CParentID (when CParentID=0, its a Category; when CParentID > 0, its a SubCategory)
Product - PID,Title, Desc etc
Category_Product - CPID, CID, PID
功能:

        public List<T> GetProductCategory<T>(int id)
    {
        var Query = from ProductTable in objProductDataContext.Products
                             join CPTable in objProductDataContext.CategoryProducts on ProductTable.ProductID equals CPTable.ProductID
                             join CategoryTable in objProductDataContext.Categories on CPTable.CategoryID equals CategoryTable.CategoryID where ProductTable.ProductID==id
                             select new { ProductTable, CPTable, CategoryTable };
        return Query;
    }
公共列表GetProductCategory(int-id)
{
var Query=来自objProductDataContext.Products中的ProductTable
在ProductTable.ProductID上的objProductDataContext.CategoryProducts中联接CPTable等于CPTable.ProductID
在objProductDataContext中联接CategoryTable。CPTable.CategoryID上的Categories等于CategoryTable.CategoryID,其中ProductTable.ProductID==id
选择新的{ProductTable,CPTable,CategoryTable};
返回查询;
}

我需要将这些数据返回控制器。我该怎么做?我读过关于创建一个单独的类的文章,但我不确定在这种情况下我会怎么做。标题是我得到的当前错误

T在查询中的用途是什么。你需要返回Query.ToList(),在select new中应该等于T。如何使select new等于T?创建一个
T
,而不是一个匿名类型。另外,返回的是iQueryTable,而不是列表。创建一个类(比如ProductCategory),该类具有ProductTable、CPTable和CategoryTable的属性。在选择write like new ProductCategory(){ProductTable=ProductTable,CPTable=CPTable,CategoryTable=CategoryTable}中,使用这个类而不是T,返回Query.ToList()。不能从函数返回匿名类型。