如何使用crm 2011 sdk和XrmServiceContext创建交易?CRM 2011 SDK交易
下一个例子'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();
}
你会得到什么异常? – glosrob
好点@glosrob,我推测这个例外不是问题,而是需要回滚。我怀疑这个例外是因为没有这样的SystemUser,它的id为'new Guid(“00000000-0000-0000-0000-000000000000”);'。拉撒路 - 如果异常得到解决,仍然需要知道如何回滚? –
@Greg:是的,但我认为这个问题仍然具有学术价值,即使问题被回答了@ [MSDN](http://social.microsoft.com/Forums/en/crmdevelopment/thread/229dec17-6c49-43ad -9751-6ea61e4ecd36)。 –