我试图在同一个数据库上使用2个上下文
要创建数据库我使用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
然后它运行create table语句 如果数据库上有用户表,则没有任何操作......
有没有办法从实体脚手架强制表创建?
答案 0 :(得分:1)
其实我只是这样找到了。
RelationalDatabaseCreator databaseCreator =
(RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
databaseCreator.CreateTables();
答案 1 :(得分:1)
在我的情况下,这是因为我无法运行add-migration SecondContext_Initial -Context SecondContext
因此无法运行迁移。 EnsureCreated()
(返回false)和Migrate()
(什么也没做)都没有给我的疏忽提供任何线索。