用于 EF 核心中数据迁移的 MongoDbContext?

标签 mongodb entity-framework database-migration ef-core-2.2

目前我正在尝试寻找一种使用 EF core 2.2 进行数据迁移的方法。阅读说明后: https://learn.microsoft.com/en-us/ef/core/managing-schemas/migrations/

我意识到它只支持 DbContext。 目前,在我的项目中,我的数据库有 mongoDBContext 和 IMongoDBContext,但我找不到任何支持它们的包。我也尝试使用 Microsoft.EntityFrameworkCore.Design 但它没有帮助。有什么解决方案可以让我使用 mongoDbContext 作为数据库提供者,或者任何支持 mongoDB 作为数据库提供者的包吗?

至于我在没有 DbContext 的情况下尝试创建迁移文件:

从我的终端

dotnet ef migrations add InitialCreate

错误

No DbContext was found in assembly '.Data'. Ensure that you're using the correct assembly and that the type is neither abstract nor generic.

非常感谢!

最佳答案

MongoDb 是无模式存储。

Entity Framework 迁移用于更新表的架构。是的,迁移也可以运行更新/删除/插入迁移的一部分,但这只是因为 Sql 依赖于架构。

此外,EF 不支持 MongoDb,因为 mongo db 不使用 sql,mongo db 有自己的 api/语言。

是的,最近更新的 EFCore 支持 CosmosDb,但这只是因为 CosmosDB 可以使用 sql

总结一下。

  1. 如果您需要修改架构,可能是您的 MongoDb 设计有误。
  2. 如果您想与 MongoDb 对话,请使用 https://docs.mongodb.com/ecosystem/drivers/csharp/
  3. 如果您不熟悉 MongoDb,请使用您熟悉的东西

关于用于 EF 核心中数据迁移的 MongoDbContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54358256/

相关文章:

c# - TryGetObjectByKey 未在 .net 4.5 中编译

database-migration - 使用空数据库和预先存在的数据库进行 Liquibase 数据库迁移

mongodb - 在mongodb中查询数组

node.js - 如何在 $match 内的 mongodb 聚合查询中使用 $regex

node.js - Node 应用程序无法连接到 MongoDB,但仅在 Docker 中

c# - EF Core (3.1) 工具 : is there a way to downgrade a database to just the previous migration?

c# - 保存具有所有必需属性的对象时 Entity Framework 验证错误

spring-boot - Spring Boot Liquibase 版本化数据库迁移 - 处理不同环境、数据库供应商和数据库凭证

grails - Grails数据库迁移-更改以前的迁移

node.js - 如何在 Mongoose 多对多关系中建模和保存?