将 SqlConnection.InfoMessage 保存到 Entity Framework 中的字符串 6
Saving SqlConnection.InfoMessage to string in Entity Framework 6
如何捕获 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;
};
}
}
我只对来自服务器的最新消息感兴趣。SQLServerLogHandler.LogDisplay.LogPrint
只是静态字符串。
EF6:
var messages = new List<string>();
var con = (SqlConnection)db.Database.Connection;
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};
db.Database.ExecuteSqlCommand("print 'foo'");
EF 核心:
var messages = new List<string>();
var con = (SqlConnection)db.Database.GetDbConnection();
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};
db.Database.ExecuteSqlRaw("print 'foo'");
如何捕获 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;
};
}
}
我只对来自服务器的最新消息感兴趣。SQLServerLogHandler.LogDisplay.LogPrint
只是静态字符串。
EF6:
var messages = new List<string>();
var con = (SqlConnection)db.Database.Connection;
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};
db.Database.ExecuteSqlCommand("print 'foo'");
EF 核心:
var messages = new List<string>();
var con = (SqlConnection)db.Database.GetDbConnection();
con.InfoMessage += (s, a) =>
{
messages.Add(a.Message);
};
db.Database.ExecuteSqlRaw("print 'foo'");