Đoạn mã ví dụ từ @Robby hoạt động, nhưng nó không trả lại những gì mã của bạn được mong đợi; nó trả về các đối tượng Interface. Trình điều khiển C# đã được cập nhật để sử dụng các phương thức Interface
, cũng như một số hàm không đồng bộ, vì vậy việc cập nhật mã của bạn có lẽ là một ý tưởng hay.
Cách mới để lấy cơ sở dữ liệu là - tốt, bạn không có cơ sở dữ liệu nữa. Bạn nhận được một IMongoDatabase
là một giao diện cho cơ sở dữ liệu. Ngoài ra, bạn không nên làm việc với MongoCollection
giây nữa (từ đối tượng MongoDatabase
), khi bạn nhận được IMongoDatabase
, bạn sẽ làm việc với IMongoCollection
. Tái cấu trúc? Bạn đặt cược! Nhưng nó đáng giá.
Tôi cũng khuyên bạn nên đặt cơ sở dữ liệu mặc định của mình trong chuỗi kết nối được định dạng URL Mongo. Bằng cách đó bạn có thể giữ các hằng số được mã hóa cứng, chẳng hạn như tên cơ sở dữ liệu, ngoài mã của bạn.
// Get your connection string -- use the URL format as in example below:
// name="MongoConnectionStr" connectionString="mongodb://localhost/bookstore"
var connectionString = ConfigurationManager.ConnectionStrings["MongoConnectionStr"].ConnectionString;
var mongoUrl = MongoUrl.Create(connectionString);
var client = new MongoClient(connectionString);
// Use the Mongo URL to avoid hard-coding the database name.
var db = new MongoClient(mongoUrl).GetDatabase(mongoUrl.DatabaseName);
// books below is an IMongoCollection
var books = db.GetCollection<Book>("Books");
Nguồn
2016-11-16 23:10:35
Tôi đã thử nó, nhưng khi tôi gọi Getdatabase() từ Client. bookCollection.Save (sách) không hoạt động. Tôi đã cố gắng để chạy bookCollection.InsertOneAsync (sách); Không có gì thay đổi. Bạn có thể giải thích cho tôi không? Giúp đỡ bạn rất nhiều. – Hana
@Hana Rất tiếc, bạn muốn trợ giúp thêm nhưng không có quyền truy cập vào máy tính Windows. –
Sử dụng 'mongoClient.GetDatabase' cho tôi một lỗi có nội dung' "MongoClient không chứa định nghĩa cho GetDatabase" '. Vậy giải pháp thay thế để lấy cơ sở dữ liệu theo tên của nó là gì? – Rai