|
La funzione ConcurrencyCheck può essere applicata alle proprietà di una classe di dominio. Quando EF esegue un'operazione di aggiornamento, Code-First inserisce il valore della colonna nell'istruzione condizione where, e puoi usare questa funzione CurrencyCheck per utilizzare le colonne esistenti per il controllo della concorrenza, invece di usare una colonna TimeStamp separata per il controllo della concorrenza. Guarda il codice qui sotto: Successivamente, modifichiamo il codice di test per la funzione principale:
Allora il messaggio di concorrenza di errore è:
executive sp_executesql N'UPDATE [dbo]. [StudentInfo] SET [NomeStudente] = @0, [StdId] = @1 DOVE (((([StudentKey1] = @2) E ([StudentKey2] = @3)) E ([NomeStudente] = @4)) ',N'@0 nvarchar(20),@1 int,@2 int,@3 int,@4 nvarchar(20)',@0=N'Test Only For One', @1=1,@2=1,@3=1,@4=N'Test Only For One' Si prega di notare:
Si noti che l'attributo TimeStamp può essere applicato solo a una proprietà dell'array di un singolo byte in una classe, mentre l'attributo ConcurrencyCheck può essere applicato a qualsiasi numero di proprietà con qualsiasi tipo di dato.
La funzione TimeStamp può essere utilizzata solo in classi con una proprietà a singolo byte, ma la funzione ConcurrencyCheck può essere utilizzata in qualsiasi numero e tipo di proprietà.
|