应用配置中的外部连接字符串
本文关键字:连接 字符串 外部 配置 应用 | 更新日期: 2023-09-27 18:31:58
我在解决 EF 中的连接字符串问题时遇到问题,我想在其他文件中分隔连接字符串。
我有一个 connections.config 包含:
<connectionStrings>
<add name="DefaultContext" connectionString="myconnection" providerName="System.Data.EntityClient" />
</connectionStrings>
在我的应用程序配置中,我有:
<connectionStrings configSource="connections.config"/>
但是当我转到模型浏览器并尝试更新模型时,出现更新向导以创建新连接。EF 无法处理此问题或我做错了什么?
TNX
我认为动态
连接的最佳方法是像代码优先一样手动操作。
只需手动创建模型和映射即可。
DatabaseContext db = new DatabaseContext("the connection string you want");
var listUsers = db.UserProfiles.ToList();
并在实现 DbContext 接口的"模型"上创建一个分部类。
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
希望有帮助。 :)