0

我们使用 LinqToSQL 和 Glimpse 连接设置如下:

if (ApplicationSettings.ProfileDatabaseQueries)
{
    var connection = new SqlConnection(connectionString);
    var conn = new GlimpseDbConnection(connection);
    context = new ApplicationDatabaseDataContext(conn, mappingSource);
}
else
{
    context = new ApplicationDatabaseDataContext(connectionString, mappingSource);
}

我在这篇Stack Overflow 帖子中读到,如果您使用 DbProviderFactories,那么 Glimpse 会自动连接,而不是我们必须在切换之前使用 web.config 键。

有没有人有任何示例代码显示如何使用 System.Data.Linq.DataContext 实现这一目标?

顺便说一句,您是否需要使用这种方法在连接字符串中显式添加提供程序?

4

1 回答 1

2

要使用DbProviderFactories基础设施而不是像上面那样手动处理事情,它看起来像下面这样:

代码:

var connectionString = ConfigurationManager.ConnectionStrings["MusicStoreEntities"];
var factory = DbProviderFactories.GetFactory(connectionString.ProviderName); 
context = new ApplicationDatabaseDataContext(factory.CreateConnection(), mappingSource);

网络配置:

<configuration>
    <!-- Other stuff -->
    <connectionStrings>
        <add name="MusicStoreEntities" connectionString="Data Source=|DataDirectory|MvcMusicStore.sdf" providerName="System.Data.SqlServerCe.4.0" />
    </connectionStrings>
    <!-- Other stuff -->
</configuration>

当您执行上述操作时,您将不再需要if (ApplicationSettings.ProfileDatabaseQueries)检查。您可以在 web.config 中打开和关闭 Glimpse,而无需更改任何其他代码。

请注意,您将需要使用 L2S 习惯使用的连接字符串,而不是我在这里使用的普通连接字符串。

于 2013-11-08T14:17:23.723 回答