2011-08-16 11 views
7

मैं वर्तमान में जून 2011 सीटीपी (एनम समर्थन के लिए) के साथ इकाई फ्रेमवर्क 4 का उपयोग कर रहा हूं और मुझे एक सतत कक्षा में एक संरचना को एम्बेड करने में कठिनाई हो रही है। मैं (दूसरों के बीच) एक InclusionCriteria struct क्षेत्र के साथ एक Patient वर्ग है:क्या एक वर्ग के समान तालिका में एक स्ट्रक्चर के फ़ील्ड को स्टोर करना संभव है?

public class Patient 
{ 
    public InclusionCriteria inclusionCriteria 
    { 
     get; 
     set; 
    } 

    ... 
} 

struct काफी सरल है, आदिम क्षेत्रों के साथ:

public struct InclusionCriteria 
{ 
    public bool withStemi 
    { 
     get; 
     set; 
    } 

    ... 
} 

प्रणाली चलाने के बाद, यह स्पष्ट हो गया है कि struct के डेटा बचाया नहीं जा रहा था। जब मैं जेनरेट की गई तालिका को देखता हूं, तो संरचना वहां नहीं होती है (एक विदेशी कुंजी या अन्यथा)। मैं संरचना के क्षेत्र Patient तालिका में स्थित होना चाहता हूं, इसलिए मैंने मानदंडों के लिए DbSet नहीं बनाया है। मैं संभावित रूप से ऐसा कर सकता था, लेकिन मैं इसे सभी एक ही टेबल में रखना चाहता था। क्या यह इकाई ढांचे में संभव है?

उत्तर

7

संरचनाएं समर्थित नहीं हैं। आपको कक्षा का उपयोग करना होगा और जटिल प्रकार के रूप में इसे मानचित्र बनाना होगा। यदि आप कोड का पहला दृष्टिकोण उपयोग कर रहे हैं तो आप इसे कक्षा बनाने और डेटाबेस को फिर से बनाने का प्रयास कर सकते हैं - यदि आप भाग्यशाली हैं तो इसे जटिल प्रकार के रूप में स्वचालित रूप से मैप किया जाएगा। नहीं तो आप डेटा एनोटेशन का उपयोग कर सकते हैं:

[ComplexType] 
public class InclusionCriteria { ... } 

या धाराप्रवाह एपीआई:

modelBuilder.ComplexType<InclusionCriteria>(); 

आप edmx पालन this article उपयोग कर रहे हैं जटिल प्रकार बनाने के लिए और this article इसका इस्तेमाल करने की है।

बीटीडब्ल्यू। सीटीपी 2011 केवल वास्तविक सुविधाओं के लिए नई सुविधाओं का परीक्षण करने के लिए है। इसकी सामग्री अगले सीटीपी में बदल सकती है।

+0

धन्यवाद! जाहिर है, मैं जो कीवर्ड खोज रहा था वह जटिल प्रकार था। मैं यह सुनिश्चित करने के लिए एक स्ट्रैट का उपयोग कर रहा था कि यह कभी भी 'शून्य' नहीं था, लेकिन मुझे लगता है कि मैं इसके बजाय सामान्य तरीकों का उपयोग करूंगा। – 101100

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

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