6
के साथ मूल सत्र हैंडलिंग आधार एपीकंट्रोलर, विचारों के रूप में इसका उपयोग करना? ज्यादातर निपटाने में SaveChanges से निपटने के बारे में उत्सुक im, बनाम ExecuteAsync विधि है जो मैं कहीं देखा है ...वेबएपीआई और रावेनडीबी
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; }
}
बहुत अच्छा लगता है, मैं इसे एक शॉट दे देंगे। –
@ फ़िट्ज़ाक्यित्ट्ज़ाकी: प्रश्न में (आसान दिखने वाले) दृष्टिकोण के बजाय मैं इसका उपयोग क्यों करना चाहूंगा? * (नोट: मैं एक वेब एपीआई ** और ** रावेनडीबी शुरुआती हूं, इसलिए यह संभव है कि मुझे कुछ याद आ रहा है) * –
क्योंकि यह आधार नियंत्रक को जोड़ने के बजाय एक विशेषता में कार्यक्षमता को समाहित करता है। यह आधार नियंत्रक को और अधिक साफ रखता है। –