Per quanto ne so, rowversion è un valore binario relativo, non un valore temporale effettivo. Aumenta per ogni inserto e aggiornamento che si verifica. Ciò consente di confrontare i valori per determinare quale record è più recente. Dato che è relativo, dato un singolo valore di rowversion, non saprai nulla, ma dati due valori di rowversion, saprai quale è più vecchio e quale è più recente, ma non di quanto.
Non so quale tipo di dati .Net associare con essi in modo che diventino Timestamp o RowVersion nel database quando viene generato.
Non sono sicuro, ma molto probabilmente non esiste un tipo di dati che fornirà rowversion quando si passa da un modello all'altro. Dovrai modificare tu stesso il tipo di campo del database, o aggiungere il campo al DB e portare il record sul tuo modello. È anche possibile generare il DDL e quindi modificarlo prima di creare il DB con esso.
C'è anche un altro metodo in cui è possibile estendere la funzionalità del processo EF derivando dalle sue classi. Puoi quindi sceglierlo da solo, ma non ho molta familiarità con il modo di farlo.
fonte
2011-04-19 16:59:25
Quando si va nella direzione opposta (DB -> modello) il tipo è 'byte []' (in codice) e "Binary" (in EDMX). –
@Craig: quando rigenererai il DB dal modello, la colonna timestamp diventa una colonna binaria e perdi il comportamento che sto cercando. –
Per essere chiari, un 'TIMESTAMP' di SQL Server non è affatto un orario. E 'questo quello che vuoi o vuoi un momento? Presumo che tu volessi un 'TIMESTAMP', che è davvero binario. –