ASP.NET 5与MongoDB

tim*_*ord 10 mongodb-.net-driver asp.net-core

尝试将ASP.NET 5网站与MongoDB C#驱动程序集成,但遇到了一些问题.

首先,此处列出的示例http://docs.mongodb.org/ecosystem/drivers/csharp/都标记为已过时.

其次,当我尝试构建时,即使IDE中的所有内容都正常,我也会遇到非常奇怪的编译错误(无法找到类型或命名空间).

这是我非常基本的HomeController.cs

using Microsoft.Framework.DependencyInjection;
using Microsoft.AspNet.Mvc;
using MongoDB.Driver;
using System;

namespace Docker.Web.Controllers
{
    public class HomeController : Controller
    {
        private AppSettings _appSettings;

        public HomeController(IServiceProvider serviceProvider)
        {
            _appSettings = serviceProvider.GetService<AppSettings>();
        }

        public IActionResult Index()
        {
            var server = new MongoClient(_appSettings.MongoConnection).GetServer();
            var database = server.GetDatabase(_appSettings.MongoDatabase);

            return View();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

主要问题是我可以在ASP.NET 5中使用C#MongoDB驱动程序吗?

使用Visual Studio 2015预览并定位KRE版本KRE-CoreCLR-x86.1.0.0-beta2

任何帮助是极大的赞赏!

fat*_*han 15

您可以将MongoDB与visual studio 2015一起使用(11月10日更新).

从project.json中删除1行;

"frameworks": {
    "dnx451": { }, // don't forget to remove ','
    "dnxcore50": { } // remove this line
}
Run Code Online (Sandbox Code Playgroud)

现在,您可以构建您的解决方案,而不会出现任何错

在此输入图像描述 在此输入图像描述


Son*_*Sam 9

CoreCLR不支持C#驱动程序,但在完整CLR451模式下支持.

我使用VS2015 CTP创建了一个示例项目

project.json

{
    "version": "1.0.0-*",
    "dependencies": {
        "mongocsharpdriver": "1.10.0.0"
    },

    "frameworks": {
        "aspnet50": {
            "dependencies": {
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

using System;
using System.Linq;
using MongoDB.Driver.Linq;
namespace MongoDBvNext
{
    public class Class1
    {
        public Class1()
        {
            var client = new MongoDB.Driver.MongoClient("");
            var server = client.GetServer();
            var db = server.GetDatabase("samples");
            var samples = db.GetCollection<Sample>("samples");
            samples.Insert(new Sample { Name = "sample" });
            var sample = samples.AsQueryable<Sample>().Where(x => x.Name == "Sample").FirstOrDefault();
            if (sample == null)
                Console.WriteLine("id: {0} name: {1} ", sample.Id.ToString(), sample.Name);
            else
                Console.WriteLine("Data does not exists");
        }

        public class Sample
        {
            public string Name { get; set; }
            public MongoDB.Bson.ObjectId Id { get; set; }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)