मैं सिर्फ यह पता लगाने की कोशिश कर रहा हूं कि ईएफ कोड फर्स्ट सीटीपी 5 का उपयोग करके बाइनरी (फ़ाइल) डेटा को स्टोर और पुनर्प्राप्त करने का कोई आसान तरीका है या नहीं? मैं वास्तव में इसे FILESTREAM प्रकार का उपयोग करना पसंद करूंगा, लेकिन मैं वास्तव में इसे काम करने के लिए कुछ रास्ता ढूंढ रहा हूं।एंटिटी फ्रेमवर्क कोड फर्स्ट सीटीपी 5 का उपयोग कर छवियों को कैसे स्टोर करें?
उत्तर
आप ईएफ में SQL FILESTREAM
का उपयोग नहीं कर सकते हैं। ईएफ को विभिन्न डेटाबेस सर्वरों के शीर्ष पर काम करना चाहिए, लेकिन फाइलस्ट्रीम सुविधा एसक्यूएल 2008 और नई की विशिष्ट विशेषता है। आप इसे पुराने तरीके से करने का प्रयास कर सकते हैं - अपनी डेटाबेस तालिका में varbinary(max)
का उपयोग करें और अपने मैप किए गए वर्ग में बाइट सरणी का उपयोग करें।
संपादित करें:
लिटिल स्पष्टीकरण - आप डेटाबेस में FILESTREAM
उपयोग कर सकते हैं लेकिन एफई स्ट्रीमिंग का लाभ नहीं ले जाएगा। यह इसे मानक varbinary(max)
के रूप में लोड करेगा।
बस अपनी संपत्ति को बाइट [] के रूप में घोषित करें जैसा कि लादीस्लाव ने उल्लेख किया है।
public class Product
{
public int Id { get; private set; }
public string Name { get; set; }
public byte[] ProductImage { get; set; }
}
यह काफी है। यदि आप संपत्ति को मानचित्र नहीं बनाते हैं तो सम्मेलन यह varbinary(max)
पर मानचित्र है। आप डेटाबेस में एक छवि स्तंभ है, तो पहले से ही बस ProductImage संपत्ति पर [Column(TypeName = "image")]
जोड़ सकते हैं या यदि आप कोड मानचित्रण पसंद करते हैं संदर्भ कक्षा में अपने OnModelCreating ओवरराइड से जोड़ें:
modelBuilder.Entity<Product>().Property(p => p.ProductImage).HasColumnType("image");
समस्या मैं इसके साथ है कि है मुझे संपत्ति को आलसी बनाने का कोई तरीका नहीं मिला है क्योंकि हर बार जब मैं कोई उत्पाद लाता हूं तो मैं बाइनरी डेटा लोड नहीं करना चाहता हूं। मुझे यकीन नहीं है कि मुझे सही याद है लेकिन NHibernate इसे बॉक्स से बाहर कर सकता है।
मैं हमेशा एक एक-से-एक संघ के साथ ProductImage
की तरह अन्य वर्ग बनाने आलसी लोड हो रहा है का प्रबंधन और भी करने के लिए तालिका को सामान्य बनाने में:
public class ProductImage
{
public int ProductId { get; private set; }
public byte[] Image { get; set; }
}
मैंने इस तकनीक का उपयोग करके एक प्रमुख प्रदर्शन वृद्धि देखी। – jsturtevant
क्या ऐसा दृश्य बनाने के लिए यह बहुत आसान नहीं होगा जिसमें फ़ाइल छवि कॉलम शामिल न हो और फिर ईएफ में दूसरी इकाई बनाएं जो तालिका के बजाय दृश्य को इंगित करे - कहें, उदा। "ProductLite" –
@ सीलिस्ट मुझे विश्वास नहीं है कि मैं वर्षों से ईएफ का उपयोग कर रहा हूं और ऐसा करने के बारे में कभी सोचा नहीं। यह एक शानदार विचार है और मैंने इसे एक अनावश्यक दृश्य से छुटकारा पाने के लिए उपयोग किया है, जिसे मैं एक ही काम करने के लिए उपयोग कर रहा था। आइए इसे "आभासी इकाई" कहें :) –
- 1. एंटिटी फ्रेमवर्क कोड फर्स्ट मैपिंग
- 2. आप वास्तव में एंटिटी फ्रेमवर्क 4 कोड-फर्स्ट सीटीपी 5 में रिश्ते कैसे करते हैं?
- 3. एंटिटी फ्रेमवर्क में ऑब्जेक्ट कैशिंग बंद करें सीटीपी 5
- 4. एएसपी.नेट एमवीसी 3 निनजेक्ट, एंटिटी फ्रेमवर्क 4 कोड-फर्स्ट सीटीपी 5, पैटर्न
- 5. SQLite के साथ एंटिटी फ्रेमवर्क सीटीपी 5 काम कैसे करें?
- 6. एंटिटी फ्रेमवर्क 4 कोड फर्स्ट (पीओसीओ)
- 7. एंटिटी फ्रेमवर्क कोड फर्स्ट फ्लुएंट एपीआई
- 8. एंटिटी फ्रेमवर्क 4 और कोड-फर्स्ट
- 9. मैं एंटिटी फ्रेमवर्क कोड-फर्स्ट क्वेरी का प्रीकंपाइल कैसे करूं?
- 10. कोड फर्स्ट एंड एंटिटी फ्रेमवर्क के साथ एनम्स का उपयोग करना 5
- 11. ईएफ सीटीपी 5 फ्लुएंट एपीआई
- 12. इकाई फ्रेमवर्क सीटीपी 5 - संग्रहित प्रक्रिया को कैसे कॉल करें?
- 13. एंटिटी फ्रेमवर्क के लिए बहुवचन को कैसे अनुकूलित करें 5
- 14. एंटिटी फ्रेमवर्क कोड फर्स्ट सीटीपी 5 का उपयोग करके, मैं प्राथमिक कुंजी कॉलम कैसे बना सकता हूं जो आईएनटी हैं और पहचान कॉलम नहीं हैं
- 15. इकाई फ्रेमवर्क सीटीपी 5, कोड-प्रथम। वैकल्पिक नेविगेशन संपत्ति
- 16. एंटिटी फ्रेमवर्क 5 ऑडिट लॉग
- 17. इकाई फ्रेमवर्क सीटीपी 5 - रिपोजिटरी पैटर्न - अपडेट कर रहे हैं
- 18. एंटिटी फ्रेमवर्क कोड पहले
- 19. एंटिटी फ्रेमवर्क
- 20. एंटिटी फ्रेमवर्क कोड प्रथम माइग्रेशन
- 21. एंटिटी फ्रेमवर्क 5 कोड के साथ कुंजी नामकरण
- 22. एंटिटी फ्रेमवर्क
- 23. एंटिटी फ्रेमवर्क 4.3 से ईएफ 5
- 24. सी # एंटिटी फ्रेमवर्क 5 डीबीजीओग्राफी स्थानिक डेटा
- 25. इकाई फ्रेमवर्क कोड फर्स्ट टेबल बहुवचन
- 26. मैं एंटिटी फ्रेमवर्क
- 27. एंटिटी फ्रेमवर्क कोड का उपयोग करना एक डीवीसीएस प्रोजेक्ट
- 28. एंटिटी फ्रेमवर्क
- 29. एंटिटी फ्रेमवर्क सीएफ स्टोर 'ऑब्जेक्ट टाइप' वैल्यू कर सकते हैं?
- 30. इकाई फ्रेमवर्क कोड-फर्स्ट - इस एंटीटी टाइप
हाँ, NHibernate स्तंभ विशेष आलसी लोडिंग कर सकते हैं बॉक्स के बाहर: http://ayende.com/blog/4377/nhibernate-new-feature-lazy-properties। – gabe