Basically, this question with a difference...
Is it possible to capture print output from a TSQL stored procedure in .NET, using the Entity Framework?
The solution in the other question doesn't work for me. It works with the connection type from System.Data.SqlClient but I'm using the one from System.Data.EntityClient which does not have an InfoMessage event. (Of course, I could just create an SQL connection based on the Entity connection settings, but prefer to do it directly.)
Just to show people a complete working example from Craig's answer and Wim's response:
var entityConnection = (EntityConnection)Context.Connection;
var sqlConnection = (SqlConnection)entityConnection.StoreConnection;
sqlConnection.InfoMessage += (s,a) => Debug.WriteLine(a.Message);
Steve
This is what worked for me, samneric's example was helpful but not the exact syntax.
string message = Empty.string;
using (var context1 = new DatabaseEntities())
{
var conn =
((EntityConnection)
((IObjectContextAdapter)context1).ObjectContext.Connection);
var sqlConnection = (SqlConnection)conn.StoreConnection;
sqlConnection.InfoMessage += (s, a) => message = a.Message;
data = context1.storedProc("Parameter");
}
Actually, it does, but since the EF is not SQL Server specific, you have to cast it:
var sqlConn = (SqlConnection)Context.Connection.StoreConnection;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With