Aec*_*Liu 4 entity-framework entity-framework-5
例如,我有以下DbContext类。
public class AppDbContext : DbContext {
...
}
public class LogDbContext : DbContext {
...
}
public class FooDbContext : DbContext {
...
}
Run Code Online (Sandbox Code Playgroud)
如果名为的连接字符串AppDbContext位于上,App.Config并且我希望其他DbContext类共享与该字符串相同的连接字符串AppDbContext,我可以只将字符串“ AppDbContext”用作ctorof LogDbContext和的参数FooDbContext。例如,
public class FooDbContext : DbContext {
public FooDbContext : base("AppDbContext") { }
}
Run Code Online (Sandbox Code Playgroud)
有副作用吗?
在尝试了@ ShinH2S的建议和一些东西之后,我放弃了这种方式,并决定给出具有不同的connectionStrings和数据库的不同的Dbcontext派生类。我已经尝试了一个测试项目,并将其放在GitHub上。当entityframework检测到由于AppDbContext和FooDbContext模式具有不同的模式而导致数据库方案更改时,它将引发运行时异常。如果我DropCreateDatabaseIfModelChanges对两个DbContext派生类都分配了策略,则其中一个模型将被删除,因为模型彼此不同。
这是一个老问题。在我的内存中,EF6 and above versions同一迁移表中的多个上下文可以具有不同的迁移历史记录。我更喜欢SO的答案。我大约两年没有使用C#进行编码。
恕我直言,没有副作用。但如果是我,我会只是创建一个基类,从的DbContext类继承BaseDbContext,那么所有的上下文(AppDbContext, LogDbContext和FooDbContext)将从中获得BaseDbContext。
| 归档时间: |
|
| 查看次数: |
1587 次 |
| 最近记录: |