簡體   English   中英

如何在代碼中添加實體框架6提供程序?

[英]How to add entity framework 6 provider in code?

我在C#應用程序中使用Entity Framework 6,它完美地運行。 創建Model時,將生成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中,您可以使用代碼庫配置。 看看這個文章的更多細節。 它顯示了如何設置默認連接工廠(使用SetDefaultConnectionFactory方法)。 要設置提供程序,請使用SetProviderServices方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM