6
Bunu bir temel APIController olarak kullanma, düşünceler? Çoğunlukla Revize içinde SaveChanges ele merak im, vs üzerine oturumu nesnenin yaşam döngüsünü yönetmek için ben başka bir yerde gördüğüm ExecuteAsync yöntemi ...WebAPI ve RavenDB ile temel oturum yönetimi
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; }
}
harika görünüyor, ben de denemek gerekir. –
@FitzchakYitzchaki: Neden bu soruyu (daha kolay görünen) yaklaşım yerine kullanmak isterdim? * (Not: Ben bir Web API'sı ** ve ** RavenDB başlangıççıyım, bu yüzden bir şeyleri kaçırmam mümkün olabilir) * –
Bu, bir temel denetleyiciye eklemek yerine bir öznitelikteki işlevselliği kapsüllediği için. Bu, baz kontrol cihazını daha temiz tutar. –