Recentemente mi sono imbattuto in un'applicazione EF6 in cui la logica è guidata pesantemente dall'uso di ID, cosa che non avevo mai visto prima.
Una volta che un'entità viene caricata da EF nel DAL, viene mappata su un altro oggetto POCO quasi identico che si trova nel livello di business logic.
Ogni volta che le entità vengono elaborate nella Business Logic, le relazioni vengono determinate utilizzando gli ID, ad esempio:
var applesOnTree = forestApples.Where(a => a.TreeID == tree.ID)
Questo mi è sembrato estremamente strano, mentre prima avevo sempre lavorato con applicazioni che esprimevano relazioni usando oggetti:
var applesOnTree = tree.Apples;
È normale utilizzare ID generati nella business logic come quando si utilizza EF?
Mi sembra strano personalmente. È meglio non lavorare mai con gli ID tranne nel livello DAL? O questa capacità è considerata un utile vantaggio di EF?
Suppongo che sia utile in quanto ti consente di tenere traccia di ciò che non è stato / non è stato ancora persistuto nel DB?