繁体   English   中英

将 CouchDB 与 asp.net C# 应用程序连接起来

[英]Connect CouchDB with asp.net C# application

如何将 couchDB 与 ASP.NET C# 应用程序连接? 如果有人可以提供示例应用程序。

我有同样的需求,在评估了可用的选项后,为了满足我的应用程序的要求,我创建了任何对我有很大帮助的组件,也许它们可以帮助您和其他人。 我明确表示我无意在这里宣传自己,只是分享一些可能有用的东西。

如何配置和使用它的详细说明在Github 上

链接: Nuget 包| GitHub

使用 mango-querie 检索文档的示例:

IList<User> users;
var sts = new List<String> { "ACTIVE", "LOCKED" };
using (UserRepository db = new UserRepository())
{
    var query = db.FindOf("list-status", new { id = "OwnerIdloop.user.7", statuses = sts });
    users = db.List<User>(query);
}
Array.ForEach(users.ToArray(), Console.WriteLine);

添加文档的示例:

User user = createUser("email@email.com");
using (UserRepository db = new UserRepository())
{
    var result = db.Insert<User>(user); // add document and return instance changed with operation revision id
    Console.WriteLine(result.Revision);
}

更改文件的示例:

using (UserRepository db = new UserRepository())
{
    // Load document data by ID
    var user = db.Get<User>("email@email.com");
    user.Name = user.Name + "::CHANGED";

    var result = db.Update<User>(user); // update document and return instance changed with operation revision id
    Console.WriteLine(result.Revision);
}

删除文档的示例:

using (UserRepository db = new UserRepository())
{
    // Load document data by ID
    var user = db.Get<User>("email@email.com");

    var result = db.Delete<User>(user); // delete document from database. Return true case sucess or false case not deleted
    Console.WriteLine($"Sucesso: {result}");
}

安装 NuGet 后,只需创建一个 MyCouch.Client 实例并将数据库的 URL 传递给它。

using (var client = new MyCouchClient("http://127.0.0.1:5984/test"))
{
    //Consume here
}

格式为: {scheme}://[{username}:{password}]/{authority}/{localpath} 从 v0.11.0 开始,有一个特定的 MyCouchUriBuilder 可用于构建 Uri。 当调用SetBasicCredentials时,它会自动例如将Uri.EscapeDataString应用于用户名和密码。

var uriBuilder = new MyCouchUriBuilder("http://localhost:5984/")
    .SetDbName(TestConstants.TestDbName)
    .SetBasicCredentials("foob@r", "p@ssword");

return new MyCouchClient(uriBuilder.Build());

更多详情请点击这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM