【问题标题】:Can't connect to Mongo DB in .Net Core API无法在 .Net Core API 中连接到 Mongo DB
【发布时间】:2017-06-22 04:06:54
【问题描述】:

一直在开发 .Net Core Web 应用程序,现在我想将 Mongo 与在 .Net Core 上用 .Net C# 编写的 API 连接起来。但是,一切都在 Docker 内部。话虽如此,每个元素都在工作。我可以从命令行编辑数据库,这样我就知道它已经启动并正在运行。另外,我应该注意我使用的是最新的 Ubuntu。

在 .csproj 文件中我添加了 Mongo 驱动程序:

<PackageReference Include="MongoDB.Driver.Core" Version="2.3.0" />
<PackageReference Include="MongoDB.Bson" Version="2.3.0" />

我在 program.cs 文件中添加:

using MongoDB.Driver; // at top
using MongoDB.Bson;
...
...
var mongo = MongoClient("mongodb://localhost:27017"); // in main method

这是我使用 docker 构建应用时遇到的错误:

Program.cs(13,25): error CS0103: The name 'MongoClient' does not exist in the current context [/src/src/Identity.api/Identity.api.csproj]

我是否添加了正确的驱动程序,他们是否在错误的位置?

如果需要任何其他信息,请告诉我。非常感谢,我期待能够连接到数据库!

【问题讨论】:

  • 似乎找不到 MongoClient 类。您可能没有正确添加 dll(或 lib?)。

标签: c# .net mongodb docker .net-core


【解决方案1】:

MongoDB.Driver.MongoClient 类型包含在MongoDB.Driver 包中,所以你需要引用它,MongoDB.Driver.Core 是不够的。

MongoDB.Driver.Core 包含 MongoDB .Net 驱动程序的“核心组件”,而不是驱动程序的 .Net Core 版本。

【讨论】:

  • 我应该将所有三个驱动程序都添加到 .csproj 和 program.cs 文件中吗?
  • MongoDB.Driver 添加到 csproj 就足够了,因为该包引用了其他两个包。对于命名空间,这取决于您需要什么类型。如果只是MongoClient,那么MongoDB.Driver 就足够了。如果您需要更多类型,则可能需要其他命名空间。
  • 所以,我补充说: var mongo = new MongoClient("mongodb://localhost:27017"); var db = mongo.GetDatabase("cvpz"); db.getCollection("人");但它说它不是 mongo 定义的一部分。我需要添加更多内容吗?
  • @Joel 我正在回答有关 NuGet 包的问题。我实际上对Mongo一无所知。您可能想就此提出一个新问题。
猜你喜欢
  • 2019-10-03
  • 1970-01-01
  • 1970-01-01
  • 2019-08-11
  • 2019-03-30
  • 2019-04-04
  • 1970-01-01
  • 2020-03-24
  • 2016-06-21
相关资源
最近更新 更多