|
De ConcurrencyCheck-functie kan worden toegepast op de eigenschappen van een domeinklasse. Wanneer EF een update-operatie uitvoert, plaatst Code-First de waarde van de kolom in de where-conditie-instructie, en je kunt deze CurrencyCheck-functie gebruiken om de bestaande kolommen te gebruiken voor gelijktijdigheidscontrole, in plaats van een aparte TimeStamp-kolom voor gelijktijdigheidscontrole. Bekijk de onderstaande code: Vervolgens passen we de testcode voor de hoofdfunctie aan:
Dan is het foutbericht gelijktijdigheid:
exec sp_executesql N'UPDATE [dbo]. [StudentInfo] SET [StudentNaam] = @0, [StdId] = @1 WAAR ((([StudentKey1] = @2) EN ([StudentKey2] = @3)) EN ([StudentNaam] = @4)) ',N'@0 nvarchar(20),@1 int,@2 int,@3 int,@4 nvarchar(20)',@0=N'Test alleen voor één',@1=1,@2=1,@3=1,@4=N'Test alleen voor één' Let op:
Let op dat het TimeStamp-attribuut alleen kan worden toegepast op een enkele byte-array-eigenschap in een klasse, terwijl het ConcurrencyCheck-attribuut op elk aantal eigenschappen met elk datatype kan worden toegepast.
De TimeStamp-functie kan alleen worden gebruikt in klassen met een eigenschap van één byte, maar de ConcurrencyCheck-functie kan worden gebruikt in elk aantal en type eigenschap.
|