2009-10-21 45 views
5

Tôi muốn sử dụng một số loại cơ sở dữ liệu nosql trong ứng dụng web của tôi được viết bằng asp.net mvc, nhưng không thể tìm thấy bất kỳ điều gì hữu ích. Tôi có một cái nhìn MongoDB và CouchDB nhưng tôi muốn có api tốt hơn (mạnh mẽ gõ không dây ma thuật) cho các truy vấn của tôi hơn họ có. Mọi thứ như thế này có tồn tại cho .NET không?Cơ sở dữ liệu dựa trên tài liệu cho .NET

Trả lời

2

Tôi là tác giả nguyên tắc đằng sau người lái xe Net cho Mongo. Hiện tại không có ORM như người lập bản đồ cho nó. Thay vào đó nó hoạt động trên các tài liệu đơn giản tương đương với một từ điển. Sẽ không khó để sử dụng sự phản chiếu để lặp qua các trường trong một tài liệu và gán chúng cho các thuộc tính trên một đối tượng. Tôi đã viết một điều đơn giản như vậy cho kết quả LDAP trong quá khứ. Bạn không phải lo lắng về việc tiêm sql với Mongo vì thực sự không phải là một ngôn ngữ truy vấn được phân tích cú pháp. Tất cả các tài xế nói chuyện với Mongo bằng tiếng mẹ đẻ của nó. Có một số tiềm năng nếu bạn tự động tạo javascript và gửi nó cho DB nhưng sự cần thiết cho điều đó chủ yếu là hiếm. Nếu bạn có bất kỳ câu hỏi nào về việc sử dụng trình điều khiển, hãy đăng chúng lên Nhóm Google hoặc gửi tin nhắn thông qua GitHub.

+0

Xin chào, tôi đã quyết định sử dụng mongo trong dự án của mình, nhưng tôi không biết cách lồng ghép một số đối tượng trong tài liệu của mình, giả sử tôi có tài liệu câu hỏi và muốn có câu trả lời trong đó, nhưng không biết cách làm –

+0

Tài liệu nhúng này chỉ là thuộc tính trên tài liệu có chứa. Đây là một lớp lót. Bạn chắc chắn có thể tách nó ra trên nhiều dòng nếu cần thiết. Document doc = new Document(). Append ("embeddedDoc", tài liệu mới(). Append ("attr1", "val1")); –

+0

Ok, nhưng có thể thêm bộ sưu tập tài liệu, giả sử tôi có câu hỏi và muốn có bộ sưu tập câu trả lời cho nó, khi tôi thử làm điều này tôi đã có ngoại lệ vì câu trả lời chính đã tồn tại –

1

MongoDB không sử dụng chuỗi ma thuật, nhưng sử dụng tài liệu truy vấn để thể hiện truy vấn. Cũng có sẵn open source C# driver. Tôi không chắc chắn về các chi tiết cụ thể của trình điều khiển C#, nhưng nó sẽ tương đối dễ dàng để thêm một lớp xác nhận trên đầu trang nếu nó không tồn tại. Có những dự án tương tự trên đầu các trình điều khiển trong Python và Ruby, ví dụ.

+0

Vâng, nhưng hãy cho tôi biết làm cách nào để lưu và truy xuất đối tượng miền của tôi theo kiểu an toàn? –

+0

Tôi không chắc chắn chính xác những gì bạn đang tìm kiếm khi bạn nói "loại an toàn". tôi nghĩ tốt nhất bạn có thể làm là sử dụng một lớp truy cập cơ sở dữ liệu để xử lý việc xác thực dữ liệu bạn đang lưu và thoát khỏi MongoDB. – mdirolf

1

Bạn có thể kết nối với tệp văn bản bằng ADO.NET và đọc/ghi chúng bằng cú pháp SQL và Lệnh được phát hành thông qua ADO.NET. There's an example in this article. Dữ liệu của bạn sẽ được lưu trữ ở định dạng có thể đọc được bằng định dạng bản ghi được phân tách bằng dấu phẩy hoặc tab. Tất nhiên nó sẽ không nhanh với các tập dữ liệu lớn. Tôi không chắc liệu bạn có đang cố gắng thoát khỏi cả cơ sở dữ liệu SQL và cú pháp SQL. Các giải pháp tệp văn bản có thể truy vấn được bằng SQL.

Bạn cũng có thể làm tương tự với bảng tính Excel bằng cách xử lý chúng như nguồn dữ liệu SQL (mặc dù chúng không) thông qua truy cập ADO.NET.

1

Không chắc chắn nếu nó là những gì bạn đang tìm kiếm nhưng bạn có thể thử http://www.db4o.com/ Tôi chưa bao giờ sử dụng nó bản thân mình nhưng nó có thể giúp bạn

1

Điều này không tồn tại tại thời điểm câu hỏi này được yêu cầu ... nhưng bây giờ có Raven DB, cơ sở dữ liệu tài liệu được viết bằng C# Ayende Rahien.

Các vấn đề liên quan