Ottenere l'errore 3007 quando aggiungo il mio modello di entità

entity-framework entity-relationship

Domanda

Sto ricevendo un errore 3007 quando aggiungo il mio modello di entità alla mia soluzione.

Ho trovato questi collegamenti:

Buona esplosione

Risposta breve

A proposito di questo errore:

Errore 1 Errore 3007: Problema nella mappatura dei frammenti che iniziano alle righe 89, 94: Le colonne della chiave non primaria [Person_ID] vengono mappate in entrambi i frammenti su diverse proprietà del lato concettuale: l'incoerenza dei dati è possibile perché le proprietà del lato concettuale corrispondente può essere modificato in modo indipendente.

La loro risposta: Sono d'accordo con la loro conclusione che semplicemente eliminando la proprietà scalare Person_ID e lasciando la proprietà di navigazione il mio problema è stato risolto. Tuttavia questo non è molto scalabile dato che sto costruendo dinamicamente il mio database e la mia entità viene aggiornata molto spesso. Non voglio dover passare e pulire la mia entità ogni volta che la aggiorno.

La mia domanda: C'è un modo per correggere l'errore correggendo il modo in cui EF costruisce l'entità? O c'è un modo per rimuovere la proprietà scalare attraverso il codice? Forse ci sono anche alcune opzioni che sto trascurando.

Risposta accettata

La mia esperienza con EF v1 è simile alla tua. Quando l'EDM viene generato in modo errato e non è possibile aggirare il problema, è necessario modificare manualmente l'EDM. EF v.Next (Entity Framework v4 credo) supporterà i modelli di dati di entità "solo codice" e il progettista EDM dovrebbe essere molto meglio. L'uno o l'altro miglioramento dovrebbe semplificarci la vita. Fino ad allora...


Risposta popolare

Prova a rimuovere la colonna di proprietà estranee dal set Entità usando il modello di modello di entità che risolverà il tuo problema

Per esempio

Abbiamo due tabelle una è cliente e l'altra è ordine , utilizzando la progettazione del modello di entità abbiamo aggiunto un'associazione tra clienti e ordini quando facciamo questa struttura di entità Ado.net aggiungerò proprietà di navigazione a entrambe le tabelle sottostanti.

Come Customer.Orders - Qui l'ordine è l'elenco Order.Customer

Uno - Molte relazioni.

Quindi dobbiamo rimuovere la proprietà da con il nome CustomerId [colonna chiave esterna] dal set di entità ordine .

Per riferimento:

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/2823634f-9dd1-4547-93b5-17bb8a882ac2/



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché