我正在尝试做最简单的事情,并将事务应用到
CreatePortal
方法。
如果我在用
TransactionScope
-它会因为一些未知的原因而升级到DTC-坏。
using (var ts = new TransactionScope())
{
var portalController = new PortalController();
var portalId =
portalController.CreatePortal(
"TESTTESTTEST",
string.Empty,
string.Empty,
"TESTTESTTEST_" + new Random().Next(999999),
UserController.GeneratePassword(),
"TESTTESTTEST_" + new Random().Next(999999) + "@something.com",
string.Empty,
string.Empty,
Globals.ApplicationMapPath + "/Portals/_default/",
"Default Website.template",
"Portals/TESTTEST",
"TESTTESTTEST",
string.Empty,
string.Empty,
false);
ts.Complete();
}
如果我在用
DataProvider.Instance().GetTransaction
并执行
RollbackTransaction
最后——它不会回滚,这意味着事务甚至都不工作。
var t = Data.DataProvider.Instance().GetTransaction();
var portalController = new PortalController();
var portalId =
portalController.CreatePortal(
"TESTTESTTEST",
string.Empty,
string.Empty,
"TESTTESTTEST_" + new Random().Next(999999),
UserController.GeneratePassword(),
"TESTTESTTEST_" + new Random().Next(999999) + "@something.com",
string.Empty,
string.Empty,
Globals.ApplicationMapPath + "/Portals/_default/",
"Default Website.template",
"Portals/TESTTEST",
"TESTTESTTEST",
string.Empty,
string.Empty,
false);
Data.DataProvider.Instance().RollbackTransaction(t);
那么,如何在dotnetnuke中使用事务?