【发布时间】:2012-12-22 01:20:12
【问题描述】:
例如,我有以下 DbContext 类。
public class AppDbContext : DbContext {
...
}
public class LogDbContext : DbContext {
...
}
public class FooDbContext : DbContext {
...
}
如果名为AppDbContext 的连接字符串在App.Config 上,并且我希望其他DbContext 类与AppDbContext 共享相同的连接字符串,我可以将字符串“AppDbContext”作为@987654327 的参数传递吗@ 的 LogDbContext 和 FooDbContext。例如,
public class FooDbContext : DbContext {
public FooDbContext : base("AppDbContext") { }
}
有副作用吗?
2013 年 1 月 9 日更新
在尝试了@ShinH2S 的建议和一些东西之后,我放弃了这种方式,并决定给不同的 Dbcontext 派生类提供不同的连接字符串和数据库。我试过a test project and put it on GitHub。当实体框架检测到数据库方案发生更改时,它将抛出运行时异常,因为AppDbContext 和FooDbContext 具有不同的模式。如果我将DropCreateDatabaseIfModelChanges 策略分配给两个 DbContext 派生类,则其中一个将被删除,因为模型与另一个不同。
2017/10 更新
这是一个老问题。在我的记忆中,EF6 and above versions 对于同一个迁移表中的多个上下文可以有不同的迁移历史。
我更喜欢this answer at SO。我已经有 2 年没有使用 C# 编码了。
【问题讨论】:
标签: entity-framework entity-framework-5