2012-05-04 13 views
5

Utilizzo le classi POCO generate e Entity Framework.Rimozione delle proprietà di navigazione dalle classi POCO in Entity Framwork

Per rendere il codice meno complesso, sto cercando di rimuovere tutte le proprietà di navigazione dal codice mantenendo i vincoli di chiave esterna nel database (le proprietà di navigazione fanno più male che bene per noi).

Se rimuovo manualmente dagli poco-classi ottengo il seguente errore

The entity type UserEntity is not part of the model for the current context

Se provo a rimuoverli dal edmx file ottengo il seguente errore:

Error 3 Error 3015: Problem in mapping fragments starting at lines 479, 562:Foreign key constraint 'fk_StorageContracts_User1' from table StorageContract (OwnerUserID) to table User (ID):: Insufficient mapping: Foreign key must be mapped to some AssociationSet or EntitySets participating in a foreign key association on the conceptual side.

Esiste un modo per rimuovere le proprietà di navigazione dalle classi POCO senza rimuovere l'FK corrispondente?

+0

Quali problemi hai con le proprietà di navigazione? – Eranga

+0

Usando "classi POCO generate", stai lavorando per prima? A che punto viene visualizzato il messaggio "Il tipo di entità UserEntity non fa parte del modello per il contesto corrente"? –

+0

@SteveWilkes: sto utilizzando questo approccio http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx (con EF 4.3). Ottengo l'errore quando provo a recuperare un'entità dal db. – Yrlec

risposta

1

So che questo è vecchio, ma, poiché non v'è ancora nessuna risposta, ho pensato di fare un tentativo:

sto ancora lavorando in EF 4.0, ma, seguendo l'esempio a cui lei ha fatto riferimento , hai un xxxModel.tt. Se sei disposto a ottimizzarlo, puoi trovare dove genera le proprietà di navigazione e cambiarle in semplici proprietà automatiche. Ho avuto un progetto simile in cui li ho generato in questo modo:

public List<NavDataX> NavDataXs 
{ 
    get; set; 
} 

Ora, sono ancora lì, ma sono nulla finché non vengono impostate in modo esplicito. Facendolo in questo modo, non ho combinato l'EDMX e non ho incontrato i due errori che hai menzionato.

+0

+1 alla domanda e a questa risposta che mi ha aiutato a rintracciare il mio problema con EF 5.0. Nel mio caso, ho un file .tt in un progetto separato che punta a un file globale (grande) .edmx. L'ho ottimizzato per sopprimere l'output per classi indesiderate e proprietà di navigazione, ma poi non sono riuscito a capire perché il contesto non avrebbe caricato i miei oggetti. Continuavo a ricevere "Il tipo di entità [NOME] non fa parte del modello per il contesto corrente", per il quale la maggior parte dei risultati di ricerca web suggerisce un problema di connessione, piuttosto che un problema di mappatura. –

Problemi correlati