我是使用RavenDB的新手。 我的理解是我們必須先創建一個DocumentStore,然後打開一個會話才能將數據保存到數據庫中。 從文檔中,我明白我們不應該每次都創建實例,並且應該只使用singleton來創建DocumentStore。 但我意識到大多數文檔或教程只是演示每次創建實例。RavenDB的單身人士DocumentStore
僅供參考,我正在使用ASP.NET MVC框架。
所以在這裏我的問題是,
- 在哪個文件夾應該CreatingDocumentStore.cs(Singleton類)是 放在哪裏?在應用程序文件夾的根目錄中?
- 創建這個單例類後,如何使用它?
下面是使用Singleton之前我的AdminController的原始代碼。我不知道如何改變它,以便使用單例類 - CreatingDocumentStore.cs
如果有人可以通過顯示代碼演示使用Singleton,我將不勝感激。提前致謝!
AdminController.cs控制器中的文件夾
public class AdminController : Controller
{
public ActionResult Index()
{
using (var store = new DocumentStore
{
Url = "http://localhost:8080/",
DefaultDatabase = "foodfurydb"
})
{
store.Initialize();
using (var session = store.OpenSession())
{
session.Store(new Restaurant
{
RestaurantName = "Boxer Republic",
ResCuisine = "Western",
ResAddress = "Test Address",
ResCity = "TestCity",
ResState = "TestState",
ResPostcode = 82910,
ResPhone = "02-28937481"
});
session.SaveChanges();
}
}
return View();
}
public ActionResult AddRestaurant()
{
return View();
}
}
CreatingDocumentStore.cs在根文件夾
public class CreatingDocumentStore
{
public CreatingDocumentStore()
{
#region document_store_creation
using (IDocumentStore store = new DocumentStore()
{
Url = "http://localhost:8080"
}.Initialize())
{
}
#endregion
}
#region document_store_holder
public class DocumentStoreHolder
{
private static Lazy<IDocumentStore> store = new Lazy<IDocumentStore>(CreateStore);
public static IDocumentStore Store
{
get { return store.Value; }
}
private static IDocumentStore CreateStore()
{
IDocumentStore store = new DocumentStore()
{
Url = "http://localhost:8080",
DefaultDatabase = "foodfurydb"
}.Initialize();
return store;
}
}
#endregion
}
那你究竟想達到通過添加'使用'在克雷亞蒂的街區ngDocumentStore'?隨着控制權離開構造方,它將立即處置您的商店。 –