Похоже, что маршрут маршрутизации неверен, поэтому измените маршрут в login component
следующим образом
const url = `${'logged/' + this.username + '/' + this.password}`;
this.router.navigate([url]);
Я постоянно использую их при тестировании :)
try
{
dc.Connection.Open();
dc.Transaction = dc.Connection.BeginTransaction();
dc.SubmitChanges();
}
finally
{
dc.Transaction.Rollback();
}
ОБНОВЛЕНИЕ
Это ВСЕГДА приведет к откату постфактум. Я использую это при тестировании.
Вероятно, что-то вроде этого:
try
{
using (TransactionScope scope = new TransactionScope())
{
//Do some stuff
//Submit changes, use ConflictMode to specify what to do
context.SubmitChanges(ConflictMode.ContinueOnConflict);
scope.Complete();
}
}
catch (ChangeConflictException cce)
{
//Exception, as the scope was not completed it will rollback
}
DataContext по умолчанию принимает внешнюю транзакцию, так что это просто вопрос обеспечения наличия транзакции в области действия. Детали становятся основным вопросом:
Это упрощенный код прототипа, реальный код использует помощников для создания транзакций с параметрами, управляемыми политикой (одной из целей прототипа было чтобы изучить влияние этих параметров).
using (var trans = new TransactionScope(
TransactionScopeOption.Required,
new TransactionOptions {
IsolationLevel = IsolationLevel.ReadCommitted
},
EnterpriseServicesInteropOption.Automatic)) {
// Perform operations using your DC, including submitting changes
if (allOK) {
trans.Complete();
}
}
Если Complete () не вызывается, транзакция будет откатана.