【发布时间】:2015-05-17 06:24:17
【问题描述】:
我用 VS 2015 ctp 创建了一个 web starter 应用程序,我想添加一个内存存储来做一些测试,但是当我尝试读取数据时,我收到了这个消息
数据存储 'SqlServerDataStore' 'InMemoryDataStore' 是 可用的。只能将上下文配置为使用单个数据 店铺。通过重写 OnConfiguring 来配置数据存储 DbContext 类或在 AddDbContext 方法中设置时 服务。
如何创建第二个数据存储?现在我在ConfigureService 方法中有这一行
AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<ApplicationDbContext>()
.AddInMemoryStore()
.AddDbContext<WorkModel>( options => { options.UseInMemoryStore(persist: true); });
编辑: 好像剧情不太清楚。 我有身份 sql server dbcontext,我想添加第二个 dbcontext,完全分开,我想在内存中运行。我正在研究如何配置两个不同的 dbcontext,在这种情况下使用两个不同的数据存储。
第一个是Identity ApplicationDbContext,另一个是这样的:
public class WorkModel : DbContext
{
public DbSet<Cliente> Clienti { get; set; }
public DbSet<Commessa> Commesse { get; set; }
protected override void OnModelCreating(ModelBuilder builder) {
builder.Entity<Cliente>().Key(cli => cli.ClienteId);
builder.Entity<Commessa>().Key(cli => cli.CommessaId);
}
}
或者你喜欢的任何自定义 dbcontext
【问题讨论】:
-
上下文的哪一部分只能配置使用单个数据存储你不明白吗?你不能这样做 - 你可以使用 either SQL Server,OR in-memory - 一个或另一个 - 但不能同时使用两者
-
我要配置第二个数据存储
-
好吧,错误信息很清楚:这是不可能。
-
你能贴出这两个上下文类的代码吗?现在,您提供的所有内容都表明您有一个上下文类,并且您尝试添加另一个数据库;这里没有任何建议您创建了第二个继承自 DbContext 的类....
标签: c# visual-studio-2015 entity-framework-core