今天我想从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
答案 0 :(得分:0)
你不需要转换为MongoCollection所以这一行应该适合你
var collection = database.GetCollection<Apple>("apples");
此外,您不需要显式创建集合,如果尚不存在,MongoDB将执行此操作,因此该行可以进行
database.CreateCollection("apples");
答案 1 :(得分:0)
Mongo 2.4的NuGet包存在问题,缺少依赖性。 它已于10月26日修复,但尚未在NuGet上修复。
您可以使用2.3,也可以手动添加依赖项,直到推送更新为止。