2015-02-12 32 views
10

Cố gắng để có được một trang web ASP.NET 5 tích hợp với trình điều khiển C# MongoDB nhưng chạy vào một vài vấn đề.ASP.NET 5 với MongoDB

Trước hết, các ví dụ được liệt kê ở đây http://docs.mongodb.org/ecosystem/drivers/csharp/ đều được gắn cờ là lỗi thời.

Thứ hai, tôi nhận được các lỗi biên dịch thực sự lạ (loại hoặc không gian tên không thể tìm thấy) khi tôi thử và xây dựng mặc dù mọi thứ có vẻ OK trong IDE.

Dưới đây là HomeController.cs rất cơ bản của tôi

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âu hỏi chính là tôi có thể sử dụng trình điều khiển C# MongoDB với ASP.NET 5?

Sử dụng Visual Studio 2015 xem trước và nhắm mục tiêu KRE phiên bản KRE-CoreCLR-x86.1.0.0-beta2

Any help is appreciated rất nhiều!

+0

thể trùng lặp của [Vấn đề với RavenDB.Client tham chiếu trong asp.net 5.0 project.json] (http://stackoverflow.com/questions/28423123/problems-with-ravendb-client- reference-in-asp-net-5-0-project-json) –

+0

Vui lòng xem câu hỏi trùng lặp, tôi nghĩ bạn đang gặp vấn đề tương tự - MongoDB chỉ có sẵn cho Desktop CLR ('aspnet50'). Về cơ bản, bạn xây dựng mã tốt cho DesktopCLR và không thành công cho CoreCLR. –

+1

Bạn không thể tham khảo nó từ coreclr trừ khi gói đã được xây dựng với hỗ trợ coreclr. Đó là điều tôi chắc chắn chúng ta sẽ thấy xảy ra khi aspnet5 tiến gần hơn đến RTM. Tuy nhiên bạn vẫn có thể sử dụng nó với aspnet5. –

Trả lời

9

Trình điều khiển C# không được hỗ trợ trong CoreCLR nhưng được hỗ trợ ở chế độ CLR451 đầy đủ.

Tôi tạo ra một dự án mẫu sử dụng 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; } 
     } 
    } 
} 
+0

Tôi đang tìm kiếm câu trả lời tương tự này, Cảm ơn Sơn! –

15

Bạn có thể sử dụng MongoDB với visual studio 2015 (Cập nhật ngày 10 tháng 11).

xóa 1 dòng khỏi project.json;

"frameworks": { 
    "dnx451": { }, // don't forget to remove ',' 
    "dnxcore50": { } // remove this line 
} 

bây giờ bạn có thể xây dựng giải pháp của mình mà không bị lỗi hoặc cảnh báo.

enter image description here enter image description here

+1

Đàn ông muốn sử dụng phiên bản .NET Core và hiện tại không thể thực hiện được. – ZOXEXIVO

+0

Vấn đề chính xác của bạn là gì, bạn có thể đưa ra một số chi tiết không? – fatihyildizhan

+0

Chúng ta cần sử dụng dnxcore50 runtime – ZOXEXIVO