如何在代码中添加实体框架6提供程序?

2024-03-27

我在 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 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 http://msdn.microsoft.com/en-us/data/jj680699.aspx文章了解更多详细信息。它显示了如何设置默认连接工厂(使用SetDefaultConnectionFactory方法)。要设置提供程序,您可以使用SetProviderServices method.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在代码中添加实体框架6提供程序? 的相关文章

随机推荐