dbml генерирует ISingleResult <object>из моей хранимой процедуры, когда я хочу коллекцию - PullRequest
1 голос
/ 14 декабря 2010

Я создал хранимую процедуру, которую перетащил в свой файл dbml, ожидая, что он создаст метод, который будет возвращать коллекцию объектов. Однако это только дает мне метод, возвращающий ISingleResult.

Мой сохраненный процесс создает переменную таблицы, заполняет ее данными и затем выбирает все из этой таблицы.

Есть идеи, что я делаю не так? Я могу опубликовать код, если это будет полезно.

Edit. Вот сгенерированный код из базы данных

[Function(Name="dbo.gr_RecentActions")]
public ISingleResult<Action> gr_RecentActions([Parameter(Name="UserID", DbType="UniqueIdentifier")] System.Nullable<System.Guid> userID)
{
    IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), userID);
    return ((ISingleResult<Action>)(result.ReturnValue));
}

Вот раздел хранимой процедуры. Это довольно просто.

    ALTER PROCEDURE [dbo].[gr_RecentActions]
@UserID UNIQUEIDENTIFIER
AS
BEGIN

DECLARE @RecentActions AS TABLE (UserId UNIQUEIDENTIFIER, UserID1 UNIQUEIDENTIFIER, Name VARCHAR(500), GiftID UNIQUEIDENTIFIER, ActionType VARCHAR(20), ActionDate DATETIME)

DECLARE @Friends AS Table (Userid UNIQUEIDENTIFIER)

INSERT INTO @Friends (Userid)
    (SUBQUERY...)



INSERT INTO @RecentActions (UserId, UserId1, Name, GiftID, ActionType, ActionDate)
    SELECT userid, NULL, Name, g.GiftId, 'GiftAdded', DateCreated FROM Gift g 
    WHERE UserId IN 
        (select UserId from @Friends)

/* SNIP.... SIMILAR CODE TO ABOVE */


SELECT * FROM @RecentActions ORDER BY ActionDate DESC

1 Ответ

5 голосов
/ 14 декабря 2010

ISingleResult<T> наследует IEnumerable<T>.Это - это коллекция.

Это единственный результат, а не несколько результатов, как в множественных наборах результатов:

SELECT *
FROM Table1

SELECT *
FROM Table2

Хранимая процедура, подобная которой не будетвозврат ISingleResult<T>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...