I documenti Microsoft per Entity Framework mostrano che è possibile contrassegnare una proprietà di un tipo come "Valore generato per aggiunta o aggiornamento". Quindi, nella situazione in cui voglio che venga assegnata una colonna LastUpdated
alla data corrente quando viene aggiornata una riga, posso contrassegnare tale proprietà in questo modo:
Ma come puoi vedere, dà l'avvertimento che EF non lo farà realmente. Seguendo questo link nell'avvertenza ci viene esplicitamente indicato che se vogliamo che una colonna Date
impostata sulla data corrente ogni volta che una riga viene aggiornata, dobbiamo andare a creare il trigger nel database per farlo accadere.
Che cosa significa , e qual è il punto di "far sapere a EF che i valori sono generati per entità aggiunte o aggiornate"?
Bene, "bit non garantisce" è davvero un po 'vago.
Ma quello che vuoi è che EF capisca che dovrebbe includere queste colonne in un Select ma non in un Update o Insert.
Stai leggendo in modo errato. Dice
Non garantisce che l'EF ...
Non dice "EF non farà nulla con questo". Se, ad esempio, si sta lavorando su Code First e si imposta il PK su
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
EF in effetti imposterà quella colonna con Identity (su SQL Server).
Significa anche che EF non invierà quel valore su aggiornamenti e inserti, dal momento che il database dovrebbe riempire quelli in.
Ricorda che EF lavora con molti fornitori, e spetta a ciascun fornitore dare questa possibilità, ecco perché non è garantito.