Domanda

Qualcuno ha effettivamente spedito un progetto di Entity Framework che fa O/R mapping concettuale in classi che sono molto diverse dalle tabelle in archivio?

Voglio dire crollo bivio (M:M) le tabelle in altri enti di forma Concettuale classi che esistono nel dominio aziendale, ma sono organizzati come più tabelle nel datastore.Tutti gli esempi che vedo su MSDN hanno poco uso dell'ereditarietà, la compressione di tabelle di collegamento in altri enti, o il collasso di tabelle di ricerca in entità.

Mi piacerebbe sentire o vedere gli esempi riportati di seguito, a supporto di tutte le operazioni CRUD in genere si aspettano di fare un oggetto di business.:

  1. Veicolo tavolo e una tabella dei Colori.Un Colore può apparire in molti Veicoli (1:M).Si forma concettuale classe UsedCar che ha la proprietà di Colore.

  2. Medico, DoctorPatients, e Pazienti tabelle (modulo di molti-a-molti).I medici hanno molti Pazienti, i Pazienti possono avere molti Medici (M:M).Mappa i due concettuale classi Medico (che ha un Pazienti di raccolta) e Pazienti (che ha un Medici di raccolta).

Chiunque visto/fatto questo con la CSDL E SSDL in Entity Framework?La CSDL non è buona se non actaully mappa per nulla!!!

È stato utile?

Soluzione

Ho tentato di usare Entity Framework su un progetto esistente (~60 tavoli, 3 con l'eredità) solo per vedere di cosa si trattava.La mia esperienza bollita fino a:

La progettazione è difettose.La mappatura non è intuitiva e qualcuno deve aver pensato che avendo diverse di windows strumento di aprire allo stesso tempo è accettabile.Ci è voluto molto tempo per creare manualmente un oggetto e la mappa per il diritto campi – allora era ancora strano parlare di codice.Pur avendo qualcosa la gestione del database la comunicazione è essenziale, Sento che consegna il controllo su EF è stato molto più di una lotta di farlo manualmente.

A volte il designer non carica fino al riavvio di Visual Studio.Sono sicuro che è solo un bug, ma il riavvio VS è fastidioso.

Tutto il tuo lavoro finisce in un singolo file, non vorrei unire più developer edition.

La risultante di SQL (visto attraverso il Profiler) non era molto buono.Non ho davvero scavare in cerca perché, ma devi essere premuto per scrivere qualcosa di peggio di un primo tentativo.

Altri suggerimenti

Entity Framework - Voto di fiducia

Tutto quello che ho da dire...

Vuoi dire questo?

<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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top