2011-09-28 21 views
11

मैं अपने Azure परियोजना में दो अलग-अलग डेटा स्रोतों का उपयोग करना चाहते:Azure साथ एफई मिश्रण एसक्यूएल सर्वर और Windows Azure संग्रहण

  • एक एसक्यूएल सर्वर कि बुनियादी आंशिक जानकारी एक आइटम के बारे में होता है
  • (सूचीबद्ध डेटा और स्थानिक खोज की अनुमति देता है) एक विंडोज Azure संग्रहण कि पूर्ण शेष की जानकारी एक आइटम के बारे में होता है (कुंजी के द्वारा प्राप्त)

इस तरह से मैं विंडोज़ Azure संग्रहण की आसान स्केलेबिलिटी के साथ SQL सर्वर के शक्तिशाली को जोड़ सकता हूं।

इस डोमेन POCO वर्ग की कल्पना कीजिए:

class Person 
{ 
    string Id { get; set; } 
    string Name { get; set; } 
    byte[] Picture { get; set; } 
    string Biography { get; set; } 
} 

मैं धाराप्रवाह मानचित्रण के साथ इकाई की रूपरेखा का उपयोग करने के एफई समझते हैं कि गुण चित्र और जीवनी विंडोज Azure संग्रहण (टेबल, ब्लॉब से लोड किया जाना चाहिए यह बताने के लिए चाहते हैं) एसक्यूएल सर्वर (संभवतः आलसी लोड) के बजाय।

ऐसा करने के लिए ईएफ (या एनएचबीरनेट) के साथ कोई तरीका है या मुझे अपनी खुद की ओआरएम रणनीति लागू करनी है?

धन्यवाद

उत्तर

6

मुझे नहीं लगता कि आप एफई Azure भंडारण के बारे में पता कर सकते हैं लेकिन आप एक विशिष्ट तालिका में केवल आवश्यक गुण मैप कर सकते हैं। उदाहरण के लिए,

modelBuilder.Entity<Person>().Ignore(p => p.Picture); 

तो यह सोचते हैं कि आप अपने व्यक्ति वर्ग के लिए भंडार वर्ग है, तो आप क्या चाहते हैं आसानी से Azure भंडारण एपीआई और एफई के साथ भंडार वर्ग भरने के द्वारा प्राप्त किया जा सकता है।

6

आप मेरी राय में इस समस्या को बहुत जल्दी (डीएएल पर) हल करने का प्रयास कर रहे हैं। वेब पर देखें, यह सर्वर पर एक अलग कॉल में बड़े डेटा (उदा। चित्र) लाता है। यह बहुत अच्छी तरह से बढ़ा है। तस्वीर डेटा को किसी कारण से दस्तावेज़ में शामिल नहीं किया गया है, यह सब कुछ धीमा कर देगा और यह बहुत गलती सहनशील नहीं होगा। यदि आप उन्हें एक इकाई में एक साथ रखते हैं तो आपको तेज़ इकाई पुनर्प्राप्ति मिल गई है जो आपके चित्र सर्वर द्वारा धीमा हो गया है क्योंकि उन्हें दोनों को आपकी व्यावसायिक परत की तरफ जाने से पहले और प्रस्तुति परत की ओर जाने से पहले एक साथ आना होगा। और व्यापार परत में यह डेटा शायद स्मृति को बर्बाद कर रहा है (यही कारण है कि आप इसे आलसी लोड करना चाहते हैं)। तो मुझे लगता है कि आप निर्णय बहुत जल्दी कर रहे हैं। आपके डोमेन ऑब्जेक्ट के रूप में आप जो वर्णन करते हैं, वह प्रस्तुति परत के डोमेन ऑब्जेक्ट की तरह दिखता है, जो व्यूमोडेल के समान है। मैं डोमेन संचालित डिज़ाइन में बहुत बड़ा नहीं हूं, लेकिन आपके आवेदन का एक सामान्य मॉडल होने पर, मुझे लगता है कि आपके आवेदन के प्रत्येक भाग को उस मॉडल के थोड़ा अलग कार्यान्वयन की आवश्यकता होगी।

आलसी लोडिंग के संबंध में, यदि आपने सक्षम किया है और आप तार पर लोड नहीं होने पर भी अपना ऑब्जेक्ट तार पर भेजने का प्रयास करते हैं, तो डेटा अनुबंध अनुबंध (या कोई अन्य) आपके कॉल पर कॉल करने के बाद से क्रमबद्ध हो जाएगा संपत्ति।

शायद यह वह जवाब नहीं है जिसे आप चाहते थे, लेकिन मुझे लगा कि मुझे यह कहना है। बेशक मैं टिप्पणियों और आलोचना के लिए खुला हूं।