J'ai créé une procédure stockée que je l'ai traîné sur mon dossier DBML attendant à créer une méthode qui renvoie une collection d'objets. Cependant, il me donne seulement une méthode retournant un ISingleResult.dbml génère ISingleResult <object> de ma procédure stockée quand je veux une collection
Ma procédure stockée crée une variable de table, la remplit avec des données, puis sélectionne tout de cette table.
Une idée de ce que je fais mal? Je peux poster un code si cela peut être utile.
Modifier. Voici le code généré à partir du dbml
[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));
}
Voici une section de la procédure stockée. C'est à peu près aussi simple.
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
Le code est toujours utile. –
@Randy: D'accord. Il y a beaucoup de choses qui pourraient se passer ici. – poindexter12