[英]How to configure EF Tracing provider for EF code first
我正在尝试将EF Tracing实用程序与EF 5.0一起使用(代码优先)。 但这仅适用于需要edmx文件的对象上下文。
http://code.msdn.microsoft.com/EFProviderWrappers
有人首先使用DBContext解决EF代码吗?
阿南德
在网站的“问答”部分,作者拥有使用“代码优先”的以下代码:
在DbContext中使用DbCommand构造函数重载...
var context = new NorthwindContext(CreateConnectionWrapper(@"name=NorthwindContext"));
和CreateConnectionWrapper方法:
private static DbConnection CreateConnectionWrapper(string nameOrConnectionString) {
var providerInvariantName = "System.Data.SqlClient";
var connectionString = nameOrConnectionString;
//name=connectionName format
var index = nameOrConnectionString.IndexOf('=');
if (nameOrConnectionString.Substring(0, index).Trim()
.Equals("name", StringComparison.OrdinalIgnoreCase))
{
nameOrConnectionString = nameOrConnectionString
.Substring(index + 1).Trim();
}
//look up connection string name
var connectionStringSetting =
ConfigurationManager.ConnectionStrings[nameOrConnectionString];
if (connectionStringSetting != null)
{
providerInvariantName = connectionStringSetting.ProviderName;
connectionString = connectionStringSetting.ConnectionString;
}
//create the special connection string with the provider name in it
var wrappedConnectionString = "wrappedProvider=" +
providerInvariantName + ";" +
connectionString;
//create the tracing wrapper
var connection = new EFTracingConnection
{
ConnectionString = wrappedConnectionString
};
//hook up logging here
connection.CommandFinished +=
(sender, args) => Console.WriteLine(args.ToTraceString());
return connection; }
这只是TracingWrapper的功能,但是您也可以用相同的方式包装缓存包装器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.