मेरे पास एक इकाई प्रकार है जिसे चित्र से प्राप्त किया गया है (प्रकाशन के 5 अन्य प्रकार हैं, सभी 10 आम गुण साझा करते हैं)।विरासत इकाई प्रकार की तालिका-विभाजन?
दुर्भाग्यवश, मेरे डीबी में छवि तालिका में विभिन्न प्रस्तावों पर छवि के 4 संस्करणों के डेटा के साथ 4 बाइनरी कॉलम शामिल हैं, इसलिए ईएफ छवि प्रकार के 4 गुण हैं: बिनऑरिगिनल, बिनहाइर, बिनलोरेस, बिन थंबनेल, जिसमें शामिल हैं बहुत बड़ी मात्रा में डेटा।
यह प्रदर्शन को प्रभावित कर रहा है। उदाहरण के लिए, जब मैं सिर्फ छवि लिंक की एक श्रृंखला उत्पन्न कर रहा हूं, तो मैं सभी बाइनरी डेटा को नहीं लेना चाहता हूं।
तो मैं मेज-बंटवारे की कोशिश की है, एक नया imagefile इकाई एक ला में 4 द्विआधारी क्षेत्रों रखने: http://blogs.msdn.com/b/adonet/archive/2008/12/05/table-splitting-mapping-multiple-entity-types-to-the-same-table.aspx
मैं सही टेबल मानचित्रण सुनिश्चित कर चुके हैं, 1-1 संघ जोड़ा गया है और शामिल निर्देशात्मक बाधा है, लेकिन मैं इस त्रुटि हो रही है:
Error 3033: Problem in mapping fragments starting at line 2731:EntitySets
'ImageFiles' and 'Publications' are both mapped to table 'Images'. Their primary
keys may collide.
... यह वहाँ है कि तालिका विभाजित किया जा रहा है में एक समस्या एक विरासत रिश्ते में शामिल रहा है लगता है।
मैं प्रकाशन से नए imagefile एफई प्रकार इनहेरिट की कोशिश की है, लेकिन फिर मैं कोई त्रुटि मिलती है:
Problem in mapping fragments starting at lines 2332, 2374:Two entities with
different keys are mapped to the same row
प्रश्न वहाँ इस के आसपास किसी भी तरह से है, या तथ्य यह है कि मैं छवि की आवश्यकता है प्रकाशन से प्राप्त करने के लिए ईएफ प्रकार अन्य क्षेत्रों को एक नए प्रकार में विभाजित करने से रोकता है?
क्या आप डेटाबेस स्कीमा बदल सकते हैं? अर्थात। छवियों के लिए एक अलग टेबल बनाओ? –
हां: यही वह है जो मैंने अब "काम-आसपास" के रूप में किया है (यह वास्तव में एक बेहतर डीबी डिज़ाइन है, लेकिन यह बहुत अधिक काम था कि डीबी पहले से ही उत्पादन में है)। तालिका-विभाजन के बारे में मेरा सवाल अभी भी खड़ा है - यह अभी भी ईएफ का एक पहलू है जिसे मैं समझना चाहता हूं। यदि आप सत्यापित/दस्तावेज कर सकते हैं कि विरासत संबंध में उप-प्रकार वाली तालिका को विभाजित करना संभव नहीं है, तो मेरे लिए उत्तर स्वीकार करने के लिए पर्याप्त होगा। – Faust
ठीक है, समझा, लेकिन मुझे यकीन नहीं है कि मैं उसमें डूबने जा रहा हूं :)। –