EF Code First CTP5: Verwenden von DbContext.Database.SqlQuery mit gespeicherten Prozedurparametern
Frage:
Entwickler stehen vor Herausforderungen bei der Bereitstellung von Parametern, wenn sie versuchen, die Methode DbContext.Database.SqlQuery mit gespeicherten Prozeduren zu verwenden. Bei Verwendung des SqlParameter-Objekts wird eine SqlException ausgelöst, die darauf hinweist, dass der Parameter nicht wie erwartet bereitgestellt wurde.
Antwort:
Um die DbContext.Database.SqlQuery-Methode erfolgreich mit einer gespeicherten Prozedur zu verwenden, die Parameter erfordert, sollte der folgende Ansatz verwendet werden:
Lösung:
Anstatt das SqlParameter-Objekt direkt als Parameter zu übergeben, ändern Sie die SQL-Abfragezeichenfolge so, dass sie Parameternamen enthält, die mit dem „@“-Symbol beginnen. Erstellen Sie dann SqlParameter-Instanzen für jeden erforderlichen Parameter, weisen Sie sie zu und stellen Sie sie als zusätzliche Parameter bereit.
Codebeispiel:
Der folgende Codeausschnitt demonstriert die korrekte Verwendung:
<code class="language-c#">context.Database.SqlQuery<我的实体类型>( "mySpName @param1, @param2, @param3", new SqlParameter("param1", param1), new SqlParameter("param2", param2), new SqlParameter("param3", param3) );</code>
Diese aktualisierte Syntax sollte das SqlException-Problem beheben und es Ihnen ermöglichen, die DbContext.Database.SqlQuery-Methode zu verwenden, um die gewünschten Ergebnisse aus einer gespeicherten Prozedur abzurufen.
Das obige ist der detaillierte Inhalt vonWie verwende ich DbContext.Database.SqlQuery korrekt mit gespeicherten Prozedurparametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!