laz*_*rus 5 sdk transactions transactionscope early-binding dynamics-crm-2011
如何使用crm 2011 sdk和XrmServiceContext创建事务?
在下一个示例中,“ new_brand”是一些自定义实体。我想创建三个品牌。第三有错误的OwnerID guid。当我调用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();
}
Run Code Online (Sandbox Code Playgroud)
是否可以不使用插件和工作流程?
不,我不相信是这样。每个context.AddObject()都是原子的。如果您不想使用插件,那么我认为您所能做的就是使用某种清理逻辑,在不满足您的条件时删除创建的记录。
| 归档时间: |
|
| 查看次数: |
4551 次 |
| 最近记录: |