App.Config中的外部连接字符串

时间:2016-01-26 10:38:30

标签: c# asp.net entity-framework-6 app-config

我在解决EF中的连接字符串问题时遇到问题,我想在其他文件中分隔连接字符串。

我有 connections.config ,其中包含:

<connectionStrings>
    <add name="DefaultContext" connectionString="myconnection" providerName="System.Data.EntityClient" />
</connectionStrings>

App.config 中,我有:

<connectionStrings configSource="connections.config"/>

但是当我转到模型浏览器并尝试更新模型时,会出现更新向导以创建新连接。 EF无法解决这个问题,或者我做错了什么?

TNX

1 个答案:

答案 0 :(得分:0)

我认为以dinamically方式建立连接的最佳方式是像Code First一样手动完成。

只需手动创建模型和映射。

DatabaseContext db = new DatabaseContext("the connection string you want");
var listUsers = db.UserProfiles.ToList();

在实现DbContext接口的“Models”上创建一个分部类。

public partial class DatabaseContext : DbContext
    {

        public DatabaseContext(string connString)
            : base(connString)
        {
            Database.SetInitializer<DatabaseContext>(null);
        }

        public DbSet<ASPStateTempApplication> ASPStateTempApplications { get; set; }
        public DbSet<ASPStateTempSession> ASPStateTempSessions { get; set; }
        public DbSet<sysdiagram> sysdiagrams { get; set; }
        public DbSet<UserProfile> UserProfiles { get; set; }
        public DbSet<VisualizacoesLog> VisualizacoesLogs { get; set; }
        public DbSet<webpages_Membership> webpages_Membership { get; set; }
        public DbSet<webpages_OAuthMembership> webpages_OAuthMembership { get; set; }
        public DbSet<webpages_Roles> webpages_Roles { get; set; }

    //Another Tables from database



        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new ASPStateTempApplicationMap());
            modelBuilder.Configurations.Add(new ASPStateTempSessionMap());    
            modelBuilder.Configurations.Add(new sysdiagramMap());
            modelBuilder.Configurations.Add(new UserProfileMap());
            modelBuilder.Configurations.Add(new VisualizacoesLogMap());
            modelBuilder.Configurations.Add(new webpages_MembershipMap());
            modelBuilder.Configurations.Add(new webpages_OAuthMembershipMap());
            modelBuilder.Configurations.Add(new webpages_RolesMap());

            //Another mappings from database



        }
}

下面的链接有一个很好的模型和映射示例。

http://www.codeproject.com/Tips/661053/Entity-Framework-Code-First-Map

希望有所帮助。 :)