2017-02-08 1 views
1

현재 MongoDB 용 RESTful API를 만드는 온라인 자습서를 진행 중입니다. 이 가이드에는 CRUD 기능을위한 DataAccess 클래스가 포함되어 있습니다. 그것은 클라이언트, 서버 및 데이터베이스에 대한 세 가지 변수를 지금 deprecated.There입니다 이전 MongoDB의 API를하는 사용 후 클래스의 생성자가된다C# MongoDB.Driver - 생성자를 만드는 방법

MongoClient _client; 
MongoServer _server; 
MongoDatabase _db; 

public DataAccess() 
{ 
    _client = new MongoClient("mongodb://localhost:27017"); 
    _server = _client.GetServer(); 
    _db = _server.GetDatabase("EmployeeDB");  
} 

이 새로운 API는 서버 변수를 당신이 그래서 필요하지 않습니다 클라이언트 (C# MongoDB.Driver GetServer is Gone, What Now?)에서 직접 호출하지만 생성자에 문제가 있습니다. 이것은 내가 무엇을하지만 생성자 코드의 _db 라인에 대한 '암시 적으로 형식을 변환 할 수 없습니다 "오류를 던지고있다 :

MongoClient _client; 
MongoDatabase _db; 

public DataAccess() 
{ 
    _client = new MongoClient("mongodb://localhost:27017"); 
    _db = _client.GetDatabase("Users"); 
} 

답변

0

MongoClient.GetDatabase 반환 IMongoDatabase 인터페이스를 제공합니다. 생성자는 더 이상 오류로이

MongoClient _client; 
IMongoDatabase _db; 

public DataAccess() 
{ 
    _client = new MongoClient("mongodb://localhost:27017"); 
    _db = _client.GetDatabase("Users"); 
} 
+0

:

은 당신의 코드를 변경하지

. 이제 클래스의 메서드에 오류가 있음을 의미합니다. 예를 들면 다음과 같습니다 : 'public IEnumerable GetUsers() { return _db.GetCollection ("사용자") FindAll(); }' 오류가 "IMongoCollection 찾을 수 없습니다 형 iMongoCollection 의 첫번째 아규먼트를 받아들이는 findall은 정의없이 확장 파일 방법을 포함하지 않는"입니다 대신에 당신이 (X => TRUE) .Find를 사용할 수 findall은의 –

+0

. ToEnumerable() –