| Eleonora Rossetti |
Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Buongiorno a tutto il forum.
Ho un piccolo problema con EF e la mappatura di classi derivate e le loro associazioni. Nel DB ho una tabella, Master, che ha IdOwner e TipoOwner. IdOwner dovrebbe associarsi all'Id di Owner_1 nel caso in cui TipoOwner sia 1 OPPURE all'Id di Owner_2 nel caso tipoOwner sia 2. (IdOwner è una chiave di tipo Int). Via DB non ci sono relazioni di alcun tipo tra queste tabelle. Nel Model ho specificato la classe Master astratta, e ho creato Master_1 e Master_2, derivanti da Master, che hanno come condition rispettivamente TipoOwner =1 e =2. Fin qui tutto ok. Il problema è quando devo associare le Master derivate alle Owner. L'errore è il 3034: Due entità con chiavi diverse vengono mappate alla stessa riga. La condition delle classi derivate non è quindi sufficiente a determinare la differenziazione? Ho provato anche a inserire manualmente nel XML del model la condition nell'AssociationMapping ma niente da fare. Dove sbaglio? Grazie in anticipo. |
| Andrea Romeo |
Re: Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Ciao Eleonora ,
Ho avuto il tuo stesso problema tempo fa , se non ricordo male dovresti provare a mappare la colonna come non nullable cosi... <Condition ColumnName="IdOwner" IsNull="false" /> |
| Eleonora Rossetti |
Re: Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Se la metto nell'AssociationSetMapping, mi dà poi questo errore:
3023: La colonna IdOwner non dispone di alcun valore predefinito e non è nullable. Per archiviare i dati di entità, è necessario un valore di colonna. Il fatto è che non si può mappare la proprietà IdOwner altrimenti mi dà conflitto (perché essendo una foreign key nel model non può essere esposta all'esterno). Un po' un serpente che si morde la coda... :-S |
| Andrea Romeo |
Re: Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Mhm..mi sfugge qualcosa..Ho fatto una ricerca su google ed ho trovato questo [ http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/12191f0d-3010-425d-9c52-ed0542458eaf ] . Riesci ad incollare nel thread il codice xml del mapping ?
|
| Eleonora Rossetti |
Re: Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Ecco quello dell'associazione tra le due derivate Master e le due Owner, compreso il suggerimento che mi hai dato:
<AssociationSetMapping Name="Owner1Master1" TypeName="MyTest.Owner1Master1" StoreEntitySet="Master"> <EndProperty Name="Owner1"> <ScalarProperty Name="Id" ColumnName="IdOwner" /></EndProperty> <EndProperty Name="Master1"> <ScalarProperty Name="Id" ColumnName="Id" /></EndProperty> <Condition ColumnName="IdOwner" IsNull="false" /> </AssociationSetMapping> <AssociationSetMapping Name="Owner2Master2" TypeName="MyTest.Owner2Master2" StoreEntitySet="Master"> <EndProperty Name="Owner2"> <ScalarProperty Name="Id" ColumnName="IdOwner" /></EndProperty> <EndProperty Name="Master2"> <ScalarProperty Name="Id" ColumnName="Id" /></EndProperty> <Condition ColumnName="IdOwner" IsNull="false" /> </AssociationSetMapping> |
| Andrea Romeo |
Re: Entity Framework, classi derivate e associazioni: errore mappatura alla stessa riga
Scusa il ritardo ma ho avuto delle cose da sbrigare e bel weekend non potevo risponderti. Io ho ricreato la tua situazione e da me funziona. Riesci a postare il codice della struttura delle tue tabelle , cosi da vederci chiaro ?
|