gpt4 book ai didi

c# - 如何在代码中添加 Entity Framework 6 提供程序?

转载 作者:太空狗 更新时间:2023-10-29 17:43:23 24 4
gpt4 key购买 nike

我在 C# 应用程序中使用 Entity Framework 6,它运行良好。创建模型时,会生成包含所有必要配置的 app.config。现在我不喜欢在 app.config 中有东西,所以我使用连接字符串生成器。我成功地从 app.config 文件中删除了除此之外的所有内容:

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>

如果我删除它,它将不起作用。那么如何将该配置转换为 C# 代码呢?我该怎么做?我查看了基于代码的配置 ( http://msdn.microsoft.com/en-us/data/jj680699 ),但它没有帮助。

创建连接字符串的部分类如下所示:

public partial class LogEntities
{
public LogEntities(string serverName)
: base(GetConnectionString(serverName))
{
}

public static string GetConnectionString(string serverName)
{
// Specify the provider name, server and database.
const string databaseName = "_LOG";

// Initialize the connection string builder for the underlying provider.
SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder
{
DataSource = serverName,
InitialCatalog = databaseName,
IntegratedSecurity = true,
MultipleActiveResultSets = true
};

// Initialize the EntityConnectionStringBuilder.
System.Data.EntityClient.EntityConnectionStringBuilder entityBuilder = new System.Data.EntityClient.EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";

// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();

// Set the Metadata location.
entityBuilder.Metadata = @"res://*/myproject.LogModel.csdl|res://*/myproject.LogModel.ssdl|res://*/myproject.LogModel.msl";

return entityBuilder.ConnectionString;
}
}

在此先感谢您的帮助。

最佳答案

在 EF6 中,您可以使用代码库配置。看看this文章了解更多详情。它展示了如何设置默认连接工厂(使用 SetDefaultConnectionFactory 方法)。要设置提供程序,您可以使用 SetProviderServices 方法。

关于c# - 如何在代码中添加 Entity Framework 6 提供程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19808549/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com