ASP.NET 5 与 MongoDB
ASP.NET 5 with MongoDB
正在尝试将 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();
}
}
}
主要问题是我可以将 C# MongoDB 驱动程序与 ASP.NET 5 一起使用吗?
使用 Visual Studio 2015 预览版和目标 KRE 版本 KRE-CoreCLR-x86.1.0.0-beta2
非常感谢任何帮助!
C# 驱动程序在 CoreCLR 中不受支持,但在完整的 CLR451 模式下受支持。
我使用 VS2015 CTP 创建了一个示例项目
project.json
{
"version": "1.0.0-*",
"dependencies": {
"mongocsharpdriver": "1.10.0.0"
},
"frameworks": {
"aspnet50": {
"dependencies": {
}
}
}
}
代码
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; }
}
}
}
您可以在 visual studio 2015 年(11 月 10 日更新)中使用 MongoDB。
从 project.json 中删除 1 行;
"frameworks": {
"dnx451": { }, // don't forget to remove ','
"dnxcore50": { } // remove this line
}
现在您可以在没有任何错误或警告的情况下构建您的解决方案。
正在尝试将 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();
}
}
}
主要问题是我可以将 C# MongoDB 驱动程序与 ASP.NET 5 一起使用吗?
使用 Visual Studio 2015 预览版和目标 KRE 版本 KRE-CoreCLR-x86.1.0.0-beta2
非常感谢任何帮助!
C# 驱动程序在 CoreCLR 中不受支持,但在完整的 CLR451 模式下受支持。
我使用 VS2015 CTP 创建了一个示例项目
project.json
{
"version": "1.0.0-*",
"dependencies": {
"mongocsharpdriver": "1.10.0.0"
},
"frameworks": {
"aspnet50": {
"dependencies": {
}
}
}
}
代码
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; }
}
}
}
您可以在 visual studio 2015 年(11 月 10 日更新)中使用 MongoDB。
从 project.json 中删除 1 行;
"frameworks": {
"dnx451": { }, // don't forget to remove ','
"dnxcore50": { } // remove this line
}
现在您可以在没有任何错误或警告的情况下构建您的解决方案。