سؤال

هل قام أي شخص بالفعل بشحن مشروع Entity Framework الذي يقوم بتعيين O/R إلى فئات مفاهيمية تختلف تمامًا عن الجداول الموجودة في مخزن البيانات؟

أعني طي جداول الوصلات (M:M) إلى كيانات أخرى لتكوينها المفاهيمي الفئات الموجودة في مجال الأعمال ولكن يتم تنظيمها على أنها جداول متعددة في مخزن البيانات.جميع الأمثلة التي أراها على MSDN لها فائدة قليلة في الوراثة، أو طي جداول الوصلات إلى كيانات أخرى، أو طي جداول البحث إلى كيانات.

أود أن أسمع أو أرى أمثلة على ما يلي والتي تدعم جميع عمليات CRUD التي تتوقع إجراؤها عادةً على كائن الأعمال.:

  1. جدول المركبات وجدول الألوان.يمكن أن يظهر اللون في العديد من المركبات (1:M).إنهم يشكلون الفئة المفاهيمية UsedCar التي لها خاصية اللون.

  2. جداول الطبيب والطبيب والمرضى والمرضى (تشكل من كثير إلى كثير).الأطباء لديهم العديد من المرضى، ويمكن للمرضى أن يكون لديهم العديد من الأطباء (M:M).قم بتخطيط الفئتين المفاهيميتين "الطبيب" (الذي يحتوي على مجموعة المرضى) والمرضى (الذي يحتوي على مجموعة "الأطباء").

هل شاهد/فعل هذا باستخدام CSDL وSSDL في Entity Framework؟إن CSDL ليس جيدًا إذا لم يتم تعيينه فعليًا لأي شيء!

هل كانت مفيدة؟

المحلول

لقد حاولت استخدام Entity Framework في مشروع موجود (حوالي 60 جدولًا، 3 منها مع الميراث) فقط لمعرفة ما يدور حوله.تجربتي تتلخص في:

السطح المصمم kludgy.إن التعيين ليس بديهيًا ويجب أن يكون هناك من يعتقد أن فتح عدة نوافذ للأدوات في نفس الوقت أمر مقبول.لقد استغرق إنشاء كائن يدويًا وتعيين الحقول الصحيحة وقتًا طويلاً - ثم كان من الغريب التحدث إليه من خلال التعليمات البرمجية.في حين أن وجود شيء يتعامل مع اتصالات قاعدة البيانات أمر ضروري، أشعر أن تسليم السيطرة إلى EF كان بمثابة معركة أكثر بكثير من القيام بذلك يدويًا.

في بعض الأحيان، لا يتم تحميل المصمم حتى تقوم بإعادة تشغيل Visual Studio.أنا متأكد من أنه مجرد خطأ ولكن إعادة تشغيل VS أمر مزعج.

سينتهي كل عملك في ملف واحد، وأنا أكره دمج إصدارات المطورين المتعددة.

لم تكن SQL الناتجة (التي تمت مشاهدتها عبر ملف التعريف) جيدة جدًا.لم أتعمق حقًا في البحث عن السبب، لكن سيتم الضغط عليك لكتابة شيء أسوأ في المحاولة الأولى.

نصائح أخرى

إطار الكيان - التصويت بحجب الثقة

هذا كل ما لدي لأقوله...

تقصد مثل هذا؟

<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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top