如何捕捉SqlConnection.InfoMessage
并将其保存到string
?我找不到任何示例,所以我在这里问。
对数据库的示例操作:
public async Task AddAsync(Items record)
{
using (var context = new DBEntities())
{
context.Configuration.LazyLoadingEnabled = false;
context.Items.Add(record);
await context.SaveChangesAsync();
}
}
如何在此示例中执行此操作?
如果我理解正确,它将让我捕获PRINT
消息,而这正是我想做的。
编辑
我这样做正确吗?
public async Task AddAsync(Items record)
{
using (var context = new DBEntities())
{
var con = (SqlConnection)context.Database.Connection;
context.Configuration.LazyLoadingEnabled = false;
context.Items.Add(record);
await context.SaveChangesAsync();
con.InfoMessage += (obj, args) =>
{
SQLServerLogHandler.LogDisplay.LogPrint = args.Message;
};
}
}
我只对来自服务器的最新消息感兴趣。
EF6:
var messages = new List<string>();
var con = (SqlConnection)db.Database.Connection;
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};
EF核心:
var messages = new List<string>();
var con = (SqlConnection)db.Database.GetDbConnection();
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};