【问题标题】:Getting RavenDB Client API to work in Silverlight让 RavenDB 客户端 API 在 Silverlight 中工作
【发布时间】:2012-10-05 01:16:58
【问题描述】:

我刚刚了解到 RavenHQ 是一个易于使用的 .NET 数据库,尤其是 Silverlight。我正在尝试插入一些测试数据(请参阅代码),但它不起作用。我想我错过了一些重要的东西,因为我是 RavenDB 的新手。

我添加了对项目的引用并创建了 clientaccesspolicy.xml 和 crossdomain.xml。我从 1.ravenhq.com 收到(Firebug)对“GET clientaccesspolicy.xml”的 HTTP 200 响应,但没有其他任何反应,也没有插入数据。任何想法将不胜感激。

Private Sub TestRavenDB()
    Try
        Dim ds = New DocumentStore()
        ds.Url = "https://1.ravenhq.com/databases/AppHarbor_60e82bd1-234f-4178-a59a-b527a1d391bb"
        ds.ApiKey = "1f827c44-3e38-4e66-8801-83ba03b01f67"
        ds.Initialize()

        Dim p As New Person("Donald")
        Dim session As IAsyncDocumentSession = ds.OpenAsyncSession()
        session.Store(p)

        session.SaveChangesAsync()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Sub

【问题讨论】:

    标签: silverlight ravendb


    【解决方案1】:

    请注意,您那里有SaveChangesAsync。在您的测试返回之前,您需要等待它完成。

    【讨论】:

    • 我想到了类似的东西。我将如何实施等待?一个委托和 BeginInvoke?
    • session.SaveChangesAsync().Wait()
    • 感谢您的快速解答。 session.SaveChangesAsync().Wait() 冻结整个浏览器,不知道为什么。我认为是因为 Silverlight 只有一个 (UI) 线程。应该有一个解决方案,因为 RavenHQ 使用 Silverlight 来管理数据库。
    • 通过 Dispatcher.InvokeAsync 和 BeginInvoke 尝试了 session.SaveChangesAsync().Wait(),仍然冻结。 Dim th As New Thread(New ThreadStart(AddressOf TestRavenDB)) 也没有改变任何东西..
    • 这是你处理异步测试的方式:ayende.com/blog/141313/async-tests-in-silverlight
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多