Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


2 questions online user: 17

0
votes
answers
30 views
+10

如何編程查詢的文檔,其中屬性是ravendb

2

在ravendb工作室我能做空:如何編程查詢的文檔,其中屬性是ravendb

property: [[NULL_VALUE]] 

如何使用IDocumentQuery做?

下面的嘗試不起作用。

documentSession 
.Advanced 
.DocumentQuery<Doc, Index>() 
.WhereIn("property", new[] {"[[NULL_VALUE]]", "some value"}) 
.ToList(); 
沙发
0
3

要查詢[[NULL_VALUE]][[EMPTY_VALUE]]

documentSession 
.Advanced 
.DocumentQuery<Doc, Index>() 
.WhereIn("property", new string[] {null, ""}) 
.ToList(); 
0
votes
answers
28 views
+10

RavenDB與IoC/DI - IDocumentStore或我(異步)DocumentSession?

1

我發佈了這個論壇之前搜索了一下這個論壇,因爲我推測它已經被打死了 - 但是因爲我沒有看到任何看起來很清楚的結果,所以我想我會給它一個鏡頭。以前有回答的可能性很高,但我沒有偶然發現一個明確的網頁。RavenDB與IoC/DI - IDocumentStore或我(異步)DocumentSession?

當使用依賴注入,這被認爲是更好的做法?注入整個IDocumentStore,然後根據需要產生一個會話,或者注入適當的IDocumentSessionIAsyncDocumentSession

過去,我在任何地方都注入了IAsyncDocumentSession - 但是現在我發現在幾個地方我實際上需要使用非async會話。這讓我想到如果我剛剛接近完全錯誤地注入烏鴉。

因此,使用IDocumentStore可能會像...

public AsHandler(IDocumentStore store) { RavenStore = store; } 

private IDocumentStore RavenStore { get; set; } 

public async Task Handle() { 
    using(var session = RavenStore.OpenAsyncSession()) { 
     ... // do stuff with an async session 
    } 
} 

但隨後的更具體的會議usecases會出現如...

public AsHandler(IAsyncDocumentSession session) { RavenSession = session; } 

private IAsyncDocumentSession RavenSession { get; set; } 

public async Task Handle() { 
    // do stuff with an async session 
} 

或分別...

public AsHandler(IDocumentSession session) { RavenSession = session; } 

private IDocumentSession RavenSession { get; set; } 

public async Task Handle() { 
    // do stuff with a non-async session 
} 

除了偏好還有什麼區別嗎?我最初的想法是,使用IDocumentSessionIAsyncDocumentSession是更好的生命週期管理,但我可能是錯的。

我使用.NET核心2.0.3StructureMap烏鴉DB 4.040023)明確,但我斷定,這可以適用於任何配置和任何版本。

沙发
0
2

不確定這是否改變了4.0,但到目前爲止DocumentStore的創建被認爲是一個相當昂貴/繁重的操作,因此建議的方法是每個應用程序只創建一次(singleton;更詳細的信息請參閱RavenDb Documentation) 。

另一方面,會話創建相當便宜,因此可以根據需要創建。

您仍然可以將兩個對象(存儲和會話)注入DI,並使用不同的生命週期(單例對瞬態)。

當然,您也可以根據需要設置DI以提供會話的同步或asnyc版本。