2010-03-08 5 views
6

Básicamente, this question con una diferencia ...captura la salida de impresión procedimiento almacenado en .NET (modelo diferente!)

¿Es posible capturar la salida de impresión desde un procedimiento almacenado TSQL en .NET, utilizando el marco de la entidad?

La solución en la otra pregunta no funciona para mí. Funciona con el tipo de conexión de System.Data.SqlClient pero estoy usando el de System.Data.EntityClient que no tiene un evento InfoMessage. (Por supuesto, podría simplemente crear una conexión SQL basada en la configuración de conexión de la Entidad, pero prefiero hacerlo directamente).

Respuesta

10

En realidad, sí, pero como el EF no es específico de SQL Server, debes convertirlo :

var sqlConn = (SqlConnection)Context.Connection.StoreConnection; 
+1

GRAN! Aunque tuve que hacer un doble encasillado. Desde DbConnection a través de EntityConnection a SqlConnection. –

8

Sólo para mostrar a la gente un ejemplo completo de trabajo de la respuesta de Craig y la respuesta de Wim:

var entityConnection = (EntityConnection)Context.Connection; 
var sqlConnection = (SqlConnection)entityConnecion.StoreConnection; 
sqlConnection.InfoMessage += (s,a) => Debug.WriteLine(a.Message); 

Steve

Cuestiones relacionadas