2012-01-06 13 views
11

मेरे पास Attachment नामक एक पीओसीओ क्लास है जो एसक्यूएल सर्वर में एक वर्बरी (अधिकतम) फ़ील्ड के साथ एक तालिका में मैप करती है। फ़ील्ड में फाइलें हैं।ईएफ 4 मैपिंग वैरबाइनरी (अधिकतम) बाइनरी - कोड पहली त्रुटि

POCO वर्ग इस

public class Attachment 
{ 
    public string AttachmentId { get; set; } 
    public string AttachmentTypeId { get; set; } 
    public string Title { get; set; } 
    public string Text { get; set; } 
    public Binary Data { get; set; } 
} 

मानचित्रण इस

modelBuilder.Entity<Attachment>().Property(a => a.Data).HasColumnName("col_data"); 

तरह लग रहा है हालांकि मानचित्रण एक त्रुटि

The type 'System.Date.Linq.Binary' must be a non-nullable value type in order to use it as a parameter 'T' 

मानचित्रण ठीक काम करता है अगर मैं का उपयोग फेंकने की तरह लग रहा है एक बाइट सरणी लेकिन ऐसा लगता है कि रास्ते में डेटा दूषित हो रहा है। मुझे लगता है कि इस JPG फ़ाइल है

0x504B0304140008000800027923400000000000000000000000001F000000 

-:

डेटाबेस में फाइल की तरह एक प्रारंभिक बाइनरी स्ट्रिंग है। एक टुकड़े में डीबी से फ़ाइल प्राप्त करने में कोई भी मदद की सराहना की जाएगी।

+1

Google सुझाव देता है कि '0x504B0304' एक ज़िपफाइल का संकेतक है: http://www.google.co.uk/search?q=0x504B0304, अगर इससे कोई मदद मिलती है? (मैंने सोचा होगा कि 'बाइट []' सरणी आगे बढ़ने का सही तरीका है।) –

+0

आपको क्या लगता है कि यह दूषित है? – ken2k

+0

धन्यवाद ओवेन, यह वही है जो यह था। अब समझ में आता है मुझे पता है कि यह क्या है। अब मैं फ़ाइल को अनजिप करने और ब्राउज़र या फ़ाइल सिस्टम में सामग्री स्ट्रीम करने में सक्षम हूं। –

उत्तर

21

Binary डेटा प्रकार केवल लिंक-टू-एसक्यूएल के लिए है। ईएफ इसके साथ काम करने में सक्षम नहीं है। ईएफ के लिए सही डेटा प्रकार बाइट सरणी है (byte[])।

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