我在解决EF中的连接字符串问题时遇到问题,我想在其他文件中分隔连接字符串。
我有 connections.config ,其中包含:
<connectionStrings>
<add name="DefaultContext" connectionString="myconnection" providerName="System.Data.EntityClient" />
</connectionStrings>
在 App.config 中,我有:
<connectionStrings configSource="connections.config"/>
但是当我转到模型浏览器并尝试更新模型时,会出现更新向导以创建新连接。 EF无法解决这个问题,或者我做错了什么?
TNX
答案 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
希望有所帮助。 :)