मैं एमवीसी पैटर्न से बहुत परिचित नहीं हूं। क्या आप मुझे बता सकते हैं कि निम्नलिखित तीन नियंत्रक कार्रवाइयों में से कौन सा बेहतर है? धन्यवाद :)नियंत्रकों में linq क्वेरी रखने के लिए यह अच्छा अभ्यास है?
(1) कार्रवाई में क्वेरी है:
public ActionResult List()
{
var query = repository.Query().Where(it => it.IsHandled).OrderBy(it => it.Id);
// ...
}
(2) सेवा में क्वेरी है:
public ActionResult List()
{
var items = service.GetHandledItemsOrderById();
// ...
}
(3) आदेश कार्रवाई में से है :
public ActionResult List()
{
var items = service.GetHandledItems().OrderBy(it => it.Id);
// ...
}
अगर हम (1) चुनते हैं, तो हमारे पास नियंत्रक में बहुत अधिक व्यवसाय तर्क है?
यदि हम (2) चुनते हैं, तो GetXXXByYYY()
जैसी कई सेवा विधियां हो सकती हैं।
अगर हम चुनें (3), हम क्यों संपुटित Where(it => it.IsHandled)
नहीं बल्कि
OrderBy(it => it.Id
।
कोई विचार?
धन्यवाद। Bu अगर "GetHandledItems()" एक संग्रह देता है (IQueryable नहीं), हम क्वेरी पर अनुमान नहीं कर सकते हैं। यह प्रदर्शन को प्रभावित करेगा। –
@Dylan - तो क्वेरी को निष्पादित करने से पहले, या तो इनलाइन या किसी अन्य पाइप विधि के माध्यम से सेवा में अपने अनुमानों को करें, उदाहरण के लिए: 'वापसी repo.Query()। जहां हैंडल()। WithOrdering()। AsSomeProjectedType() ' – RPM1984
यह भी देखें यह ** शानदार ** एमवीसी पाइप्स और फ़िल्टर पर रॉबकॉन vid: http://www.asp.net/mvc/videos/aspnet-mvc-storefront-part-3-pipes-and-filters – RPM1984