Frage

Hat jemand ausgeliefert tatsächlich ein Entity Framework-Projekt, das O / R-Mapping in konzeptuelle Klassen tut, die aus den Tabellen im Datenspeicher ganz anders sind?

ich meine Kreuzung kollabieren (M: M) Tabellen in andere Einheiten bilden Conceptual Klassen, die in der Business-Bereich existieren, sondern als mehrere Tabellen organisiert im Datenspeicher. Alle Beispiele, die ich auf der MSDN haben wenig Gebrauch von Vererbung, kollabiert Kreuzung Tabellen in anderen Einheiten oder Kollabieren Lookup-Tabellen in Einheiten.

Ich würde gerne von hören oder Beispiele für die unter dem unterstützen alle CRUD-Operationen sehen würden Sie in der Regel auf einem Business-Objekt zu tun erwarten.

  1. Fahrzeugtisch und eine Farbtabelle. Eine Farbe kann in vielen Fahrzeugen erscheint (1: M). Sie bilden die konzeptionelle Klasse UsedCar, die die Eigenschaft Farbe hat.

  2. Arzt, DoctorPatients und Patienten Tabellen (eine viele zu viele bilden). Die Ärzte haben viele Patienten, Patienten, viele Ärzte haben (M: M). Kartieren die beiden konzeptionellen Klassen Doctor (die eine Patienten-Kollektion hat) und Patienten (die einen Ärzte Sammlung hat).

Wer gesehen / getan dies mit CSDL UND SSDL im Entity Framework? Die CSDL ist nicht gut, wenn es actaully nicht zu irgendetwas Karte!

War es hilfreich?

Lösung

ich versuchte, das Entity Framework auf einem vorhandenes Projekt zu verwenden (~ 60 Tabellen, 3 mit Vererbung) nur um zu sehen, was es über war. Meine Erfahrung eingekocht zu:

Die Designer-Oberfläche ist kludgy. Die Abbildung ist nicht intuitiv und jemand muss gedacht haben, dass die Fenster gleichzeitig geöffnet mehrere Werkzeug aufweist, ist akzeptabel. Es dauerte eine lange Zeit, um manuell ein Objekt aus und ordnen Sie die richtigen Felder zu erstellen - dann ist es immer noch seltsam war aus dem Code zu reden. Während mit etwas Umgang mit der Datenbank Kommunikation ist wichtig, Ich glaube, dass die Kontrolle über die EF reicht weit mehr einen Kampf war, als es manuell zu tun .

Manchmal nur der Designer nicht geladen werden, bis Sie Visual Studio neu starten. Ich bin sicher, dass es nur ein Fehler, aber VS Neustart ist ärgerlich.

Alle Ihre Arbeit endet in einer einzigen Datei auf, würde ich hasse mehrere Entwickler Ausgaben zu fusionieren.

Die resultierende SQL (über den Profiler beobachtet) war nicht sehr gut. Ich habe nicht wirklich tauchen Sie ein in suchen, warum, aber Sie würden gedrückt werden etwas schlechter auf einem ersten Versuch zu schreiben.

Andere Tipps

Entity Framework - Misstrauen Vertrauen

Das ist alles, was ich sagen soll ...

Sie mögen das bedeuten?

<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>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top