Linq to sql 使用LINQ2SQL从存储过程返回匿名类型

Linq to sql 使用LINQ2SQL从存储过程返回匿名类型,linq-to-sql,stored-procedures,Linq To Sql,Stored Procedures,考虑以下存储过程: SELECT * FROM Customers; SELECT Customer.Id, Customer.Name, Order.Total, Order.DateOrdered FROM Customers INNER JOIN Orders ON Customers.Id = Orders.CustomerId; 这个过程显然返回了两个结果集,我正试图用这个分部类方法检索它们: public partial class DBSproc : DataContext {

考虑以下存储过程:

SELECT * FROM Customers;

SELECT Customer.Id, Customer.Name, Order.Total, Order.DateOrdered
FROM Customers INNER JOIN Orders ON Customers.Id = Orders.CustomerId;
这个过程显然返回了两个结果集,我正试图用这个分部类方法检索它们:

public partial class DBSproc : DataContext
{
    [Function(Name = "dbo.spGetCustomersAndOrders")]
    [ResultType(typeof(Customer))]
    // What type should I use here for the second resultset?
    [ResultType(typeof(... what here? ...))] 
    public IMultipleResults GetCustomersAndOrders()
    {
        IExecuteResult result =
            this.ExecuteMethodCall(this,
               ((MethodInfo)(MethodInfo.GetCurrentMethod())));

        return (IMultipleResults)(result.ReturnValue);
    }
}
我知道第一个结果集将映射到客户实体,但是第二个结果集呢?第二个是自定义选择,将多个表中的多个列组合在一起。我没有具有这些属性的实体

我是否应该仅为该结果集创建一个虚拟实体?我希望我能以某种方式使用匿名类型进行这种特殊查询


谢谢。

一般来说,只有当返回类型为object时,才能从方法返回匿名类型。然后,调用代码不知道匿名类型可能具有什么属性,除非它使用反射


是的,您可以使用匿名类型,但您可能不想使用,因为它不是很有用。

一般来说,只有当返回类型为object时,才可以从方法返回匿名类型。然后,调用代码不知道匿名类型可能具有什么属性,除非它使用反射


是的,您可以使用匿名类型,但您可能不想使用,因为它不是很有用。

看到这个问题没有有用的答案,我很遗憾,我希望会有一个!很遗憾看到这个问题没有有用的答案,我希望会有一个!当您想要返回与json相同的对象时,它很有用;当您想要返回与json相同的对象时,它很有用