2017-02-08 8 views
1

現在、MongoDB用のRESTful APIを作成するオンラインチュートリアルに従っています。このガイドには、CRUD機能のDataAccessクラスが含まれています。新しい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");  
} 

:3つのクライアント、サーバーとデータベースのための変数とそのクラスのコンストラクタを持っていることは今deprecated.Thereある古いMongoDBの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 (" Users ")FindAll(); } ' エラーが「IMongoCollection が見つかりませんでした型iMongoCollection の最初arguementを受け入れるのfindAll定義なしextenstion方法が含まれていない」である代わりに、あなたは(X => TRUE).Findを使用することができるのfindAllの –

+0

。 ToEnumerable() –

関連する問題