6
將此作爲基礎APIController使用,思考?大部分即時通訊好奇的處理處置的SaveChanges,主場迎戰ExecuteAsync方法我已經在別處見到過......使用WebAPI和RavenDB處理基本會話
using System;
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Controllers;
using Raven.Client;
using Raven.Client.Document;
public abstract class RavenDbController : ApiController
{
private IDocumentStore _documentStore;
public IDocumentStore Store
{
get { return _documentStore ?? (_documentStore = LazyDocStore.Value); }
set { _documentStore = value; }
}
protected override void Initialize(HttpControllerContext controllerContext)
{
Session = Store.OpenSession();
base.Initialize(controllerContext);
}
protected override void Dispose(bool disposing)
{
using (Session)
{
Session.SaveChanges();
}
}
public IDocumentSession Session { get; set; }
}
看起來不錯,我給它一個鏡頭。 – 2013-03-04 14:57:24
@FitzchakYitzchaki:爲什麼我想在問題中使用這個而不是(更容易看)的方法? *(注意:我是一個Web API **和RavenDB初學者,所以有可能我錯過了一些東西)* – 2013-04-21 19:38:49
因爲它將功能封裝在屬性中而不是將其添加到基本控制器。這使基本控制器更加乾淨。 – 2013-04-22 06:11:34