Возврат анонимных типов из хранимой процедуры с помощью LINQ2SQL

Рассмотрим следующую хранимую процедуру:

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);
    }
}

Я понимаю, что первый набор результатов будет сопоставлен с объектом «Клиент», но как насчет второго? Второй - выбор пользователя, объединяющий несколько столбцов из нескольких таблиц. У меня нет сущности с этими свойствами.

Должен ли я создать фиктивную сущность только для этого набора результатов? Я надеялся, что смогу как-то использовать анонимные типы для таких специальных запросов.

Спасибо.

2.03.2009 20:57:22
Стыдно видеть этот вопрос без «полезных» ответов, я надеялся, что он будет!
Jon 5.01.2010 04:38:20
1 ОТВЕТ

Вообще говоря, вы можете возвращать анонимные типы из метода только тогда, когда типом возврата является «объект». Затем вызывающий код не знает, какие свойства могут иметь ваши анонимные типы, если только он не использует отражение.

Так что да, вы можете использовать анонимные типы, но вы, вероятно, не хотите, потому что это не очень полезно.

0
2.03.2009 23:53:43
Это полезно, когда вы хотите вернуть тот же объект, что и json
om471987 26.05.2013 10:15:47