2012-11-12 13 views
7

SQL के इस तालिका वस्तु के रूप में डाटा स्टोर करने की कोई तरीका है:स्वचालित क्रमबद्धता

http://pasteboard.s3.amazonaws.com/images/LDTcQpG.png

SettingsModel स्तंभ, जो इस तरह Linq-to-Sql में परिभाषित किया गया है के अंदर:

http://pasteboard.s3.amazonaws.com/images/LDXSPiM.png

और DataContext विकल्प के साथ भी:

namespace ElQueue.DataClasses 
{ 
    [DataContract] 
    public sealed class SettingsModel 
    { 
     [DataMember(IsRequired = true)] 
     public int[] VideoMediaData { get; set; } 
    } 
} 

इस तरह:http://pasteboard.s3.amazonaws.com/images/LE1ddhn.png

वर्ग SettingsModel इस तरह परिभाषित किया गया साथ

? ...

using (SomeDataContext dataContext = new SomeDataContext()) 
{ 
    SettingsModel m = new SettingsModel(); 
    m.VideoMediaData = new int[] { 1, 2, 3 }; 
    dataContext.MainTableSettings.InsertOnSubmit(new MainTableSetting() { SettingsModel = m }); 
    dataContext.SubmitChanges(); 
} 

using (SomeDataContext dataContext = new SomeDataContext()) 
{ 
    var r = dataContext.MainTableSettings.Single(); 
} 

तुम देखो, does not काम से ऊपर कोड सही तरीके से, यह अपवाद कहते हैं जो कि यह MainTableSetting को स्ट्रिंग परिवर्तित नहीं कर सकते जिसका मतलब है कि या तो यह सब धारावाहिक डेटा नहीं बचा सकता है या उस के साथ साथ deserialize नहीं कर सकते हैं फेंक रहा है वापस।

मुझे कुछ सलाह चाहिए कि मैं Linq-to-Sql को वास्तव में serialization (और इसके विपरीत) डेटाबेस को एक्सेस करने के लिए कैसे इंगित करें।

उत्तर

4

यद्यपि आप के रूप में प्रकार का मिलान भागो समय व्यवहार मैट्रिक्स में दिखाया गया है SQL सर्वर के XElement और XDocument मैप कर सकते हैं, System.Data.Linq.DataContext.CreateDatabase विधि है इन प्रकार के लिए कोई डिफ़ॉल्ट एसक्यूएल सर्वर प्रकार मानचित्रण

एक वर्ग को लागू करता है तो पार्स() और toString(), आप किसी भी एसक्यूएल पाठ प्रकार (CHAR, NCHAR, VARCHAR, NVARCHAR, पाठ, Ntext, एक्सएमएल) करने के लिए वस्तु मैप कर सकते हैं। मैप किए गए डेटाबेस कॉलम में ToString() द्वारा दिए गए मान को भेजकर डेटाबेस में ऑब्जेक्ट को संग्रहीत किया जाता है। डेटाबेस द्वारा लौटाई गई स्ट्रिंग पर पार्स() का आविष्कार करके ऑब्जेक्ट का पुनर्निर्माण किया जाता है।

http://msdn.microsoft.com/en-us/library/bb386947.aspx#TextMapping

public sealed class SettingsModel 
{ 
    // ... 

    public static SettingsModel Parse(string source) 
    { 
     SettingsModel res; 

     // Deserialise the object 

     return res; 
    } 
} 
संबंधित मुद्दे