Eksempel: Bruge optimistisk samtidighed til opdaterings- og sletningshandlinger
Udgivet: november 2016
Gælder for: Dynamics CRM 2015
Demonstrerer, hvordan du bruger funktionen for optimistisk samtidighed, som blev introduceret i Opdatering 1 til Microsoft Dynamics CRM Online 2015 til at forhindre potentielt datatab, når du udfører en opdatering eller sletning af objektposter. Se yderligere oplysninger om, hvilken teknik der bruges, under dette emne: Reducer potentielle datatab ved hjælp af optimistisk samtidighed
Hele eksemplet kan hentes på MSDN: Bruge optimistisk samtidighed med opdaterings- og sletningshandlinger.
Forudsætninger
Hvis du vil køre dette eksempel, skal du have:
Adgang til en Opdatering 1 til Microsoft Dynamics CRM Online 2015-organisation.
Microsoft .NET Framework 4.5.2 installeret på din udviklercomputer.
En aktiv internetforbindelse, så de krævede NuGet-pakker hentes automatisk ved opbygning af eksemplet.
Dette emne indeholder
Det kan eksemplet gøre
Installer NuGet-pakker
Kør eksemplet
Det kan eksemplet gøre
Dette eksempel viser, hvordan du bruger optimistisk samtidighed til opdaterings- og sletningshandlinger. Kodestykker, der viser de vigtigste dele af eksemplet, er vist. Dette eksempel angiver funktionsmåden for samtidighed ved opdaterings- og sletningsanmodninger, så serveren søger efter en bestemt version af en firmapost for handlingerne. Hvis opdaterings- eller sletningshandlingerne forsøges ved hjælp af en post med en anden rækkeversion, opstår der en undtagelse. Ellers er handlingen fuldført.
// Connect to the Organization service.
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,
serverConfig.Credentials, serverConfig.DeviceCredentials))
{
CreateRequiredRecords();
// Retrieve an account.
var account = _serviceProxy.Retrieve("account", _accountId, new ColumnSet("name","creditlimit"));
Console.WriteLine("\tThe row version of the created account is {0}", account.RowVersion);
if (account != null)
{
// Create an in-memory account object from the retrieved account.
Entity updatedAccount = new Entity()
{
LogicalName = account.LogicalName,
Id = account.Id,
RowVersion = account.RowVersion
};
// Update just the credit limit.
updatedAccount["creditlimit"] = new Money(1000000);
// Set the request's concurrency behavour to check for a row version match.
UpdateRequest accountUpdate = new UpdateRequest()
{
Target = updatedAccount,
ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
};
// Do the update.
UpdateResponse accountUpdateResponse = (UpdateResponse) _serviceProxy.Execute(accountUpdate);
Console.WriteLine("Account '{0}' updated with a credit limit of {1}.", account["name"],
((Money)updatedAccount["creditlimit"]).Value);
account = _serviceProxy.Retrieve("account", updatedAccount.Id, new ColumnSet());
Console.WriteLine("\tThe row version of the updated account is {0}", account.RowVersion);
_accountRowVersion = account.RowVersion;
}
DeleteRequiredRecords(promptforDelete);
}
// Delete the account record only if the row version matches.
EntityReference accountToDelete = new EntityReference("account", _accountId);
accountToDelete.RowVersion = _accountRowVersion;
DeleteRequest request = new DeleteRequest()
{
Target = accountToDelete,
ConcurrencyBehavior = ConcurrencyBehavior.IfRowVersionMatches
};
_serviceProxy.Execute(request);
Installer NuGet-pakker
Download dette eksempel, og pak filerne ud.
Gå til mappen C#, og åbn løsningsfilen i Microsoft Visual Studio.
I Solution Explorer skal du højreklikke på projektet og vælge Administrer NuGet-pakker.
På rullelisten øverst i dialogboksen skal du vælge Omfatter foreløbig version, hvis du bruger en eksempelorganisation til Microsoft Dynamics CRM Online. Ellers skal du vælge Kun stabile.
Luk dialogboksen.
De nødvendige pakker installeres automatisk, når du bygger løsningen.
Kør eksemplet
I Visual Studio skal du trykke på F5 for at bygge og køre eksemplet. Du bliver bedt om at acceptere licenserne til de NuGet-pakker, der skal installeres.
Hvis du ikke tidligere har kørt en af de administrerede Microsoft Dynamics 365-kodeeksempler, skal du angive oplysninger for at køre koden. Ellers skal du indtaste nummeret for en af de Dynamics 365-servere, du tidligere har konfigureret.
Prompt
Beskrivelse
Angiv et servernavn og en port for Dynamics 365 [crm.dynamics.com]
Angiv navnet på din Microsoft Dynamics 365-server. Standarden er Microsoft Dynamics CRM Online (crm.dynamics.com) i Nordamerika.
Eksempel:
crm5.dynamics.comMedtag ikke navnet på din organisation eller internetprotokol (http eller https). Du bliver bedt om dette senere.
Er denne organisation klargjort i Microsoft Online Services (y/n) [n]
Skriv y, hvis det er en Microsoft Online Services-klargjort organisation. Ellers skal du skrive n.
Angiv domæne\brugernavn
For Microsoft Dynamics CRM Online skal du angive dit Microsoft-konto. Eksempel: someone@mydomain.onmicrosoft.com.
Angiv adgangskode
Skriv din adgangskode. Adgangskoden gemmes sikkert i Windows Legitimationsstyring til senere brug.
Angiv et organisationsnummer (1-n) [1]
Skriv det tilsvarende nummer fra listen over viste organisationer, du tilhører. Standardværdien er 1, der angiver den første organisation på listen.
Eksemplet udfører de operationer, der er beskrevet i Det kan eksemplet gøre, og du bilver muligvis bedt om at angive flere indstillinger.
Når eksemplet er fuldført, skal du trykke på ENTER for at lukke konsolvinduet.
Se også
Reducer potentielle datatab ved hjælp af optimistisk samtidighed
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret