0

J'ai créé plusieurs requêtes dans un Stored Procedure. Consultez ci-dessous par exemple:
à savoirInsérer, mettre à jour, supprimer une requête dans une procédure stockée avec Entity Framework

IF(@Type='add') 
BEGIN 
    Insert query 
END 

IF(@Type='get') 
BEGIN 
    Select query 
END 

J'utilise Entity Framework dans mon projet MVC. Donc, je reçois une erreur: does not have a corresponding column in the data reader with the same name.

Est-il nécessaire de créer différents Stored Procedures pour chaque requête? Comment puis-je accomplir tout ce que j'essaie de faire?

+0

Il s'agit de choisir comment vous voulez l'écrire. – Amit

+0

Pouvez-vous montrer comment vous définissez la valeur 'query'? –

+0

@ S.Dav J'ajoute le modèle Entity Framework (modèle de données d'entité Ado.NET et concepteur EF de base de données). –

Répondre

0

L'erreur que vous avez n'a rien à voir avec les requêtes incluses dans la procédure, vous pouvez inclure à la fois les requêtes d'insertion et de sélection dans la procédure sans problème. La requête de sélection doit se faire après l'insertion, de sorte que les résultats de la requête soient renvoyés par la procédure stockée et que l'infrastructure d'entité puisse mapper correctement les propriétés au modèle.

Un autre problème, je pense, est que la requête de sélection, ne renvoie pas le modèle d'entité complète, je pense que vous avez seulement retourné des colonnes spécifiques pas toutes les colonnes.

Je vous recommande de les scinder en deux procédures différentes, afin que la requête select puisse être mappée à un modèle. et la requête d'insertion fonctionne bien sans sélectionner.

+0

Dans ma procédure stockée ci-dessus, Si j'ajoute une requête select après une instruction d'insertion, cela fonctionne correctement. 'IF (@ Type = « ajouter ») BEGIN Insérer requête requête Sélectionnez où id = id dernier END' –

+0

Oui Il doit être après l'insertion afin qu'il retourne aux résultats retour de la procédure stockée. –

+0

@JeetenParmar - Me voir mettre à jour –