可能是MongoDB异常错误?

时间:2016-10-12 20:15:19

标签: c# .net mongodb

今天我想从SQL Ce转到MongoDB。我下载了驱动程序并在我的PC上本地运行服务器。

这是我的实际代码(顺便说一句,我甚至不知道将IMongoCollection转换为MongoCollection是否安全):

using System;
using MongoDB.Driver;

namespace MongoShit
{
    class Program
    {
        class Apple
        {
            public int price, weight;
            public string color;

            public Apple()
            {
                price = 0;
                weight = 0;
                color = "ayye";
            }
        }

        static protected IMongoClient client;
        static protected IMongoDatabase database;

        static void Main(string[] args)
        {
            client = new MongoClient("mongodb://localhost");
            database = client.GetDatabase("test");

            database.CreateCollection("apples");

            var data = new Apple() { price = 100, weight = 500, color = "green" };

            MongoCollection<Apple> collection = (MongoCollection<Apple>)database.GetCollection<Apple>("apples");
            collection.Insert(data);

            var cursor = collection.FindAll();
            foreach(Apple a in cursor)
            {
                Console.WriteLine(string.Format("Apple, P: {0}   W: {1}   C: {2}", new object[] { a.price, a.weight, a.color }));
            }
            Console.Read();
        }
    }
}

但每当我尝试运行该程序时,我都会收到以下错误: 类型&#39; System.IO.FileNotFoundException&#39;的未处理异常发生在mscorlib.dll

其他信息:无法加载文件或程序集System.Runtime.InteropServices.RuntimeInformation,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a&#39;或其中一个依赖项。系统找不到指定的文件。

发生了什么? :S

2 个答案:

答案 0 :(得分:0)

你不需要转换为MongoCollection所以这一行应该适合你

var collection = database.GetCollection<Apple>("apples");

此外,您不需要显式创建集合,如果尚不存在,MongoDB将执行此操作,因此该行可以进行

 database.CreateCollection("apples");

答案 1 :(得分:0)

Mongo 2.4的NuGet包存在问题,缺少依赖性。 它已于10月26日修复,但尚未在NuGet上修复。

您可以使用2.3,也可以手动添加依赖项,直到推送更新为止。