Транзакция CRM 2011 SDK

Как создать транзакцию с помощью crm 2011 sdk и XrmServiceContext?

В следующем примере «new_brand» — это некий пользовательский объект. Я хочу создать три бренда. У третьего неправильный идентификатор владельца. Когда я вызываю метод SaveChanges(), создаются два бренда, и у меня есть исключение. Как откатить создание первых двух брендов?

Возможно ли это без использования плагинов и рабочих процессов?

using (var context = new XrmServiceContext(connection))
{
    SystemUser owner = context.SystemUserSet.FirstOrDefault(s => s.Id == new Guid("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"));

    // create 3 brands
    new_brand b1 = new new_brand();
    b1.new_brandidentification = 200;
    b1.new_name = "BRAND 200";
    b1.OwnerId = owner.ToEntityReference();
    context.AddObject(b1);

    new_brand b2 = new new_brand();
    b2.new_brandidentification = 300;
    b2.new_name = "BRAND 300";
    b2.OwnerId = owner.ToEntityReference();
    context.AddObject(b2);

    new_brand b3 = new new_brand();
    b3.new_brandidentification = 400;
    b3.new_name = "BRAND 400";
    b3.OwnerId = new EntityReference(SystemUser.EntityLogicalName, new Guid("00000000-0000-0000-0000-000000000000"));
    context.AddObject(b3);

    context.SaveChanges();
}
5
задан shytikov 4 March 2013 в 12:28
поделиться