2008-09-11 20 views
12

क्या किसी ने वास्तव में एक एंटिटी फ्रेमवर्क प्रोजेक्ट भेज दिया है जो ओ/आर मैपिंग वैचारिक कक्षाओं में मैपिंग करता है जो डेटास्टोर में टेबल से काफी अलग है? अन्य संस्थाओं में टेबल वैचारिक कक्षाएं कि व्यापार डोमेन मौजूद हैं, लेकिन कई तालिकाओं डेटासंग्रह में के रूप में आयोजन किया जाता है के रूप में:कोई भी इकाई फ्रेमवर्क * वेल * का उपयोग कर रहा है?

मैं जंक्शन (एम एम) पतन मतलब है। एमएसडीएन पर देखे गए सभी उदाहरणों में विरासत का थोड़ा उपयोग होता है, अन्य इकाइयों में जंक्शन तालिकाओं को ध्वस्त कर दिया जाता है, या इकाइयों में लुकअप टेबल को ध्वस्त कर दिया जाता है।

मैं के बारे में सुना या जो नीचे के उदाहरण देखने में खुशी होगी सभी CRUD आपरेशन आप आमतौर पर एक व्यापार वस्तु .:

  1. वाहन की मेज और एक रंग की मेज पर क्या करने की उम्मीद करेंगे समर्थन करते हैं। कई वाहनों में एक रंग दिखाई दे सकता है (1: एम)। वे अवधारणा वर्ग प्रयुक्त कर सकते हैं जिसमें संपत्ति रंग है।

  2. डॉक्टर, डॉक्टर रोगी, और मरीज़ टेबल (कई लोगों को बनाते हैं)। डॉक्टरों में कई मरीज़ होते हैं, मरीजों में कई डॉक्टर हो सकते हैं (एम: एम)। दो वैचारिक कक्षाओं डॉक्टर (जिसमें मरीजों का संग्रह है) और मरीजों (जिसमें डॉक्टरों का संग्रह है) को मानचित्र करें।

किसी को भी देखा/इकाई की रूपरेखा में CSDL और SSDL साथ यह किया? सीएसडीएल अच्छा नहीं है अगर यह किसी भी चीज़ पर कार्यवाही से मेल नहीं खाता है!

उत्तर

5

मैंने एक मौजूदा प्रोजेक्ट (~ 60 टेबल, विरासत के साथ 3) पर एंटीटी फ्रेमवर्क का उपयोग करने का प्रयास किया ताकि यह देखने के लिए कि यह सब क्या था। मेरा अनुभव नीचे उबला हुआ:

डिजाइनर सतह क्लोडी है। मैपिंग अंतर्ज्ञानी नहीं है और किसी ने सोचा होगा कि एक ही समय में कई टूल विंडो खुले हैं। मैन्युअल रूप से ऑब्जेक्ट बनाने और सही फ़ील्ड को मैप करने में काफी समय लगा - फिर भी कोड से इसकी बात करना अजीब था। डेटाबेस संचार को संभालने में कुछ आवश्यक होने पर, मुझे लगता है कि ईएफ पर नियंत्रण सौंपना मैन्युअल रूप से करने से लड़ने के लिए कहीं अधिक था।

कभी-कभी डिज़ाइनर तब तक लोड नहीं होता जब तक आप विजुअल स्टूडियो को पुनरारंभ नहीं करते। मुझे यकीन है कि यह सिर्फ एक बग है लेकिन वीएस को पुनरारंभ करना परेशान है।

आपका पूरा काम एक ही फाइल में समाप्त होता है, मैं कई डेवलपर संस्करणों को मर्ज करने से नफरत करता हूं।

परिणामी एसक्यूएल (प्रोफाइलर के माध्यम से देखा गया) बहुत अच्छा नहीं था। मैं वास्तव में क्यों दिखने में डूब गया था, लेकिन आपको पहले प्रयास पर कुछ और लिखने के लिए दबाया जाएगा।

+0

इस हाल या बीटा के दौरान था? मेरे पास एक सुंदर खट्टा बीटा अनुभव था जो वास्तव में मुझे ईएफ के बारे में उत्साहित नहीं करता था। – Tyler

+0

जैसे ही मैं अपनी कार्य मशीन पर एसपी 1 की रिलीज स्थापित कर सकता हूं और उस पर एक घंटा फेंक सकता हूं। – Ant

2

आपका मतलब यह है?

<edmx:ConceptualModels> 
    <Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" Namespace="Model1" Alias="Self"> 
    <EntityContainer Name="Model1Container" > 
     <EntitySet Name="ColorSet" EntityType="Model1.Color" /> 
     <EntitySet Name="DoctorSet" EntityType="Model1.Doctor" /> 
     <EntitySet Name="PatientSet" EntityType="Model1.Patient" /> 
     <EntitySet Name="UsedCarSet" EntityType="Model1.UsedCar" /> 
     <AssociationSet Name="Vehicle_Color" Association="Model1.Vehicle_Color"> 
     <End Role="Colors" EntitySet="ColorSet" /> 
     <End Role="Vehicles" EntitySet="UsedCarSet" /></AssociationSet> 
     <AssociationSet Name="DoctorPatient" Association="Model1.DoctorPatient"> 
     <End Role="Doctor" EntitySet="DoctorSet" /> 
     <End Role="Patient" EntitySet="PatientSet" /></AssociationSet> 
     </EntityContainer> 
    <EntityType Name="Color"> 
     <Key> 
     <PropertyRef Name="ColorID" /></Key> 
     <Property Name="ColorID" Type="Int32" Nullable="false" /> 
     <NavigationProperty Name="Vehicles" Relationship="Model1.Vehicle_Color" FromRole="Colors" ToRole="Vehicles" /></EntityType> 
    <EntityType Name="Doctor"> 
     <Key> 
     <PropertyRef Name="DoctorID" /></Key> 
     <Property Name="DoctorID" Type="Int32" Nullable="false" /> 
     <NavigationProperty Name="Patients" Relationship="Model1.DoctorPatient" FromRole="Doctor" ToRole="Patient" /></EntityType> 
    <EntityType Name="Patient"> 
     <Key> 
     <PropertyRef Name="PatientID" /></Key> 
     <Property Name="PatientID" Type="Int32" Nullable="false" /> 
     <NavigationProperty Name="Doctors" Relationship="Model1.DoctorPatient" FromRole="Patient" ToRole="Doctor" /> 
     </EntityType> 
    <EntityType Name="UsedCar"> 
     <Key> 
     <PropertyRef Name="VehicleID" /></Key> 
     <Property Name="VehicleID" Type="Int32" Nullable="false" /> 
     <NavigationProperty Name="Color" Relationship="Model1.Vehicle_Color" FromRole="Vehicles" ToRole="Colors" /></EntityType> 
    <Association Name="Vehicle_Color"> 
     <End Type="Model1.Color" Role="Colors" Multiplicity="1" /> 
     <End Type="Model1.UsedCar" Role="Vehicles" Multiplicity="*" /></Association> 
    <Association Name="DoctorPatient"> 
     <End Type="Model1.Doctor" Role="Doctor" Multiplicity="*" /> 
     <End Type="Model1.Patient" Role="Patient" Multiplicity="*" /></Association> 
    </Schema> 
</edmx:ConceptualModels> 
+0

यह अच्छा लग रहा है। यह हमेशा मैपिंग कर रहा है कि सीएसडीएल एसएसडीएल पर है जिसके बारे में मैंने सोचा है। एसएसडीएल कहां से शुरू होता है?मुझे लगता है कि मैं सोच रहा हूं कि यह एक खाली डिजाइनर सतह पर सीएसडीएल के साथ इकाइयों का वर्णन करने से कहीं अधिक है। यह हमेशा मैपिंग रहा है जो मेरे लिए एक सवाल रहा है। – Tyler

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

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