In SQL Server Management Studio:Gespeicherte Prozedur mit dem Ausgangsparameter gibt immer 1 in Anwendungscode vs SQL
- Rechtsklick auf das Verfahren
- Execute
- Sie
- nicht Wert für den Parameter OUTPUT eingeben Geben Sie den Wert für einen anderen Zeichenfolgenparameter ein
- Der korrekte Wert wird zurückgegeben (z. B .: 12+)
Telefonvorwahl:
DECLARE @return_value int,
@CustomerID bigint
EXEC @return_value = [dbo].[InsertCustomer]
@CustomerID = @CustomerID OUTPUT,
@Name = N'CustomerName'
SELECT @CustomerID as N'@CustomerID'
SELECT 'Return Value' = @return_value
In Anwendungscode:
- Führen Sie den folgenden Code
- Der Rückgabewert für
CustomerID
ist immer 1
Code:
ObjectParameter ob = new ObjectParameter("CustomerID", typeof(long));
var CustomerID = db.InsertCustomer(ob, "CustomerName");
Ich habe versucht, den zweiten Parameter ObjectParameter(,)
zu ändern, indem ich einen Typ und oft ein Objekt nach Wert übergebe (zB 0, 1 usw.), aber ohne Erfolg.
Was könnte hier schief gelaufen sein?
aktualisieren:
Dies ist, wie der Look-Prozedur-Code Entity Framework wie:
public virtual int InsertCustomer(ObjectParameter customerID, string name)
{
var nameParameter = name != null ?
new ObjectParameter("Name", name) :
new ObjectParameter("Name", typeof(string));
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("InsertCustomer", customerID, nameParameter);
}
Es sieht nicht, wie Sie den Ausgabeparameter im Code als Ausgabeparameter angeben. –
Mögliches Duplikat von [Ausgabeparameter mit Entity Framework] (http://stackoverflow.com/questions/9367688/output-parameter-with-entity-framework) –