что такое правильная программа hello world с использованием c #, couchdb и LoveSeat - PullRequest
1 голос
/ 19 апреля 2011

Я пытаюсь сохранить простой привет мир на C # в базе данных couchdb (всего новичка).

Я использую LoveSeat (но не стесняйтесь предложить другого клиента, если это поможет) и имеюсоздал этот простой код:

static void Main(string[] args)
{
    var cl = new CouchClient("myserver", 5984, null, null);

    var db = cl.GetDatabase("mydb");

    var newDoc = db.CreateDocument(@"{
""Test"":""ValueTest""
}"
    );

    var newDoc2 = db.SaveDocument(newDoc);
}

Документ фактически создан:

{
   "_id": "805656b6113d30a5387230a669000bb6",
   "_rev": "1-44c5768a2fa004c6a43899687c283517",
   "Test": "ValueTest"
}

, но когда я смотрю на полученный newDoc2, я вижу:

{
  "error": "file_exists",
  "reason": "The database could not be created, the file already exists."
}

Я сделал что-то не так?

thx

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Я прочитал исходный код LoveSeat :

public Document SaveDocument(Document document)
{
    if (document.Rev == null)
        return CreateDocument(document);

    var resp = GetRequest(databaseBaseUri + "/" + document.Id + "?rev=" + document.Rev).Put().Form().Data(document).GetResponse();
    var jobj = resp.GetJObject();
    //TODO: Change this so it simply alters the revision on the document past in so that there isn't an additional request.
    return GetDocument(document.Id);
}

, поэтому, если document.Rev==null, SaveDocument совпадает с CreatDocument
если document.Rev!=null, то SaveDocument фактически является «UpdateDocument».

Ваш код относится к прежнему случаю: document.Rev==null

1 голос
/ 11 мая 2011

CreateDocument - это то, что фактически добавляет новый документ в couchdb.После этого нет необходимости вызывать SaveDocument.SaveDocument используется для обновления документа после внесения в него изменений.Я не уверен, но кажется, что вызов SaveDocument для документа, который не был обновлен, дает вам эту ошибку.Если вы внесете изменения в документ, а затем вызовете SaveDocument, я думаю, он будет работать нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...