Entità Framework 6 Convenzioni

0

Uso spesso Entity Framework, ma ho una zona di confusione che vorrei capire meglio.

Se volevo avere una proprietà di navigazione in un'entità come

public virtual ExampleObject Example {get;set;}

è anche il fatto che ha una proprietà Id

public int ExampleId {get;set;}

La mia undertanding è che crea un FK, ma se lo ometto, la funzionalità è la stessa e l'FK sembra essere comunque creato. Quindi, c'è un motivo per il campo aggiuntivo?

    
posta James 25.06.2014 - 00:33
fonte

1 risposta

2

Non ho mai usato Entity Framework, né ho familiarità con i suoi dettagli di implementazione, ma è abbastanza comune che gli ORM non risolvano le chiavi esterne in oggetti a meno che non siano esplicitamente istruiti a farlo o l'utente provi ad accedere a questi oggetti . Questo ha senso: il popolamento della proprietà Example è molto più espansivo del popolamento di ExampleId , poiché l'ID è la colonna della tabella dell'entità contenente, ma per il ExampleObject completo è necessario interrogare un'altra tabella.

Anche se sembra che ExampleId sia utile solo per risolvere il ExampleObject completo, ci possono essere casi in cui è necessario solo l'ID. Ad esempio, se Student ha Course con la chiave esterna CourseId e Assignment ha anche Course con la chiave esterna CourseId , potresti voler utilizzare Student 's CourseId direttamente per ottenere tutti Assignment s con lo stesso CourseId . Non è necessario l'oggetto Course completo per quello.

    
risposta data 25.06.2014 - 01:05
fonte

Leggi altre domande sui tag