2011-09-01 15 views
6

मैं अपने कुछ डेटाबेस टेबल, उदाहरण Address के साथ प्रति पदानुक्रम विरासत तालिका को लागू करने की कोशिश कर रहा हूं। मैं Address से 3 कक्षाएं प्राप्त करना चाहता हूं, ये EmployeeAddress, CustomerAddress, SupplierAddress हैं।एंटीटी फ्रेमवर्क टेबल प्रति पदानुक्रम विरासत

+-------------------+------------------------+ 
| Address   |> EmployeeAddress  | 
+-------------------+------------------------+ 
| ID    | ..      | 
| OwnerID   | EmployeeID    | 
| OwnerCategory  | (condition: where = 0) | 
| Street_1   | ..      | 
| Street_2   | ..      | 
| City    | ..      | 
| Province   | ..      | 
| PostalCode  | ..      | 
+-------------------+------------------------+ 
        |> CustomerAddress  | 
        +------------------------+ 
        | ..      | 
        | EmployeeID    | 
        | (condition: where = 1) | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        +------------------------+ 
        |> SupplierAddress  | 
        +------------------------+ 
        | ..     | 
        | EmployeeID    | 
        | (condition: where = 2) | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        | ..      | 
        +------------------------+ 

समस्या मैं हो रही त्रुटियों रखना

है ... जब Addressठोस है, और OwnerCategory संपत्ति में शामिल हैं:

त्रुटि 3032: समस्या मानचित्रण टुकड़े में लाइन पर शुरू 178: 'IsNull = False' की तुलना में अन्य की स्थिति के साथ हालत सदस्य 'पते। ऑनर श्रेणी' मैप किया गया है। या तो पते पर स्थिति को हटा दें। ऑनर श्रेणी या मैपिंग से इसे हटा दें।

जब Addressसार है और OwnerCategory संपत्ति में शामिल हैं: स्थिति सदस्य 'addresses.OwnerCategory' एक शर्त 'से IsNull = झूठी दूसरे के साथ:

मानचित्रण टुकड़े में समस्या लाइन 178 पर शुरू ' मैप किया गया है। या तो पते पर स्थिति को हटा दें। ऑनर श्रेणी या मैपिंग से इसे हटा दें।

'DtcInvoicer.Database.Address' के लिए एक परिभाषा शामिल नहीं है 'OwnerCategory' और कोई विस्तार विधि:

जब Addressठोस है, और OwnerCategory संपत्ति नहीं शामिल करता है को स्वीकार करने वाले 'स्वामी श्रेणी' 0 'डीटीसीइन्वाइसर.डेटाबेस.एड्रेस' प्रकार का पहला तर्क पाया जा सकता है (क्या आप एक निर्देश या निर्देशक संदर्भ का उपयोग कर रहे हैं?)

लाइनों 177, 195 से शुरू होने मानचित्रण टुकड़े में

और

समस्या: EntityTypes Model.Address, Model.EmployeeAddress तालिका पतों में एक ही पंक्तियों को मैप किया जा रहा है। मैपिंग स्थितियों का उपयोग पंक्तियों को अलग करने के लिए किया जा सकता है, जिन्हें इन प्रकारों के लिए मैप किया गया है।

(मैं पहले से ही हालत सेट (जब OwnerCategory = 0)

जब Address है सार और नहीं हैOwnerCategory संपत्ति होते हैं:

'DtcInvoicer.Database।पता 'में ' स्वामी श्रेणी 'की परिभाषा नहीं है और को स्वीकार करने वाली कोई एक्सटेंशन विधि' स्वामी श्रेणी 'नहीं है' DtcInvoicer.Database.Address 'प्रकार का पहला तर्क पाया जा सकता है (क्या आप एक निर्देश या एक असेंबली संदर्भ का उपयोग कर रहे हैं?)

किसी भी मदद की सराहना की जाती है, अग्रिम धन्यवाद।

उत्तर

7

चूंकि आप अपनी विरासत की स्थिति में OwnerCategory का उपयोग कर रहे हैं, इसे किसी संपत्ति में मैप नहीं किया जा सकता है। ऐसा लगता है कि आपको Address पर सार भी सेट करना चाहिए। सुनिश्चित करें कि आप अपने मॉडल से संपत्ति हटा दें और इसका उपयोग कर रहे किसी भी कोड में संशोधन करें। आपके द्वारा उल्लिखित गैर मैपिंग त्रुटियां मानक त्रुटि प्रतीत होती हैं जब संकलक विशिष्ट सदस्य नहीं ढूंढ पाता है, इसलिए उन स्पॉट को ठीक करना सुनिश्चित करें।

+0

अरे, मैंने 'स्वामी कैटोग्री' संपत्ति को हटाने का प्रयास किया है, और मैंने ऊपर वर्णित सार जैसे 'पता' को सेट किया है। मुझे बहुत अंत में उल्लिखित त्रुटि मिलती है। –

+1

ठीक है, ऐसा लगता है कि कुछ अन्य कोड 'स्वामी श्रेणी' का उपयोग कर रहे थे, आपको उस कोड को संशोधित करना होगा जिसका उपयोग 'स्वामी श्रेणी' का उपयोग न करें। – scmccart

+0

अरे, लगता है कि आप सही थे। ऐसा लगता है कि अब काम कर रहा है। मुझे लगता है कि मैं इसे कहीं और इस्तेमाल कर रहा था। एक बार फिर धन्यवाद। –

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