2013-08-29 5 views
7

पर विचार करें एक वेब एपीआई नियंत्रक में निम्न विधि:वेबएपीआई Odata बिना इकाई की रूपरेखा

[Queryable(AllowedQueryOptions= AllowedQueryOptions.All)] 
public override IQueryable<Mandate> Get() 
{ 
     return new List<Mandate>() { new Mandate() { 
      Id = 1, 
      PolicyNumber = "350000000", 
      OpenPositions = new List<OpenPosition>(){ 
       new OpenPosition(){ Id = 1, Amount =2300 }, 
       new OpenPosition(){ Id = 2, Amount =2100 } 
      }}, 
      new Mandate() { 
       Id = 2, 
       PolicyNumber = "240000000" , 
       OpenPositions = new List<OpenPosition>(){ 
       new OpenPosition(){ Id = 3, Amount =2500 }, 
       new OpenPosition(){ Id = 2, Amount =2100 } 
      } 

      } }.AsQueryable<Mandate>(); 
    } 

यहाँ सूची मैन्युअल रूप से बनाया गया है और अगर मैं इस यूआरएल को ब्राउज़:

http://localhost:52446/odata/Mandates?$filter=Id eq 1 यह सही मद रिटर्न सूची से।

अब स्पष्ट रूप से सूची डेटाबेस संरचना होने की अधिक संभावना है। कुछ ओआरएम का उपयोग करके डेटा पुनर्प्राप्त किया जाएगा और वेब एपीआई सेवा में वापस आ जाएगा।

मैं इकाई फ्रेमवर्क का उपयोग नहीं करता (और मैं विरासत प्रणाली के कारण नहीं कर सकता)।

मैं इस मामले में वेब एपीआई का उपयोग कैसे करूं? मैं यूआरएल पैरामीटर का अनुवाद कैसे करूं ताकि फिल्टर डेटा एक्सेस के लिए जिम्मेदार परत द्वारा लागू किया जा सके?

+3

यदि आपके डेटाबेस के लिए कोई LINQ प्रदाता नहीं है, तो आपको ODataQueryOptions का अनुवाद करना होगा। इस ब्लॉग पोस्ट के साथ शुरू करें: http://blogs.msdn.com/b/webdev/archive/2013/02/25/translating-odata-queries-to-hql.aspx –

+0

समझ गया। आपने मुझे अपने LINQ प्रदाता के साथ सही दिशा में इंगित किया। मैंने पाया कि मैं इसे ओआरएम के साथ आसानी से कर सकता हूं जिसका हम उपयोग कर रहे हैं (ओपनएप)। यहां अधिक जानकारी: http://documentation.telerik.com/openaccess-orm/developers-guide/using-web-services/asp.net-web-api/developer-guide-wcfservices-web-api-expose-oacontext – Sam

+0

@ सैम क्या आप अपनी टिप्पणी उत्तर के रूप में पोस्ट कर सकते हैं? अन्यथा प्रश्न हल होने के बावजूद सक्रिय की तरह लगते हैं। –

उत्तर

0

समझ गया। आपने मुझे अपने LINQ प्रदाता के साथ सही दिशा में इंगित किया। मैंने पाया कि मैं इसे ओआरएम के साथ आसानी से कर सकता हूं जिसका हम उपयोग कर रहे हैं (ओपनएप)। यहां अधिक जानकारी: http://docs.telerik.com/data-access/developers-guide/using-web-services/asp.net-web-api/developer-guide-wcfservices-web-api-expose-oacontext

संबंधित मुद्दे