Entity framework 实体框架核心-同一数据库中的2个上下文-未创建第二个上下文表
我试图在同一数据库上使用两个上下文。Entity framework 实体框架核心-同一数据库中的2个上下文-未创建第二个上下文表,entity-framework,entity-framework-core,Entity Framework,Entity Framework Core,我试图在同一数据库上使用两个上下文。 要创建数据库,我正在使用DbContext.database.EnsureCreated() 第一个EnsureCreated调用工作正常,第二个EnsureCreated调用不工作 一些注意事项 分析SQL Server我可以看到EF Core检查表的存在 IF EXISTS ( SELECT * FROM INFORMATION_SCHEMA.TABLES
要创建数据库,我正在使用
DbContext.database.EnsureCreated()
第一个
EnsureCreated
调用工作正常,第二个EnsureCreated
调用不工作
一些注意事项
分析SQL Server我可以看到EF Core检查表的存在
IF EXISTS (
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
WHERE
TABLE_TYPE = 'BASE TABLE')
SELECT 1
ELSE
SELECT 0
然后运行CREATETABLE语句。如果数据库中有用户表,则不会执行任何操作
有没有一种方法可以强制从实体脚手架创建表?实际上我只找到了这种方法
RelationalDatabaseCreator databaseCreator =
(RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
databaseCreator.CreateTables();
RelationalDatabaseCreator databaseCreator=
(RelationalDatabaseCreator)context.Database.GetService();
databaseCreator.CreateTables();
在我的例子中,这是因为我无法运行添加迁移SecondContext\u Initial-Context SecondContext
,所以没有要运行的迁移。EnsureCreated()
(返回false)和Migrate()
(未执行任何操作)都未能为我的疏忽提供任何线索。InMemoryDatabaseCreator呢?