ฉันต้องการคืน Func ตรงกลางของบล็อกที่ใช้งาน ฉันควรกังวลเกี่ยวกับการกำจัดก่อนที่ผู้ใช้จะรันผลลัพธ์ Func หรือไม่
รหัสตัวอย่าง:
private IDbContextTransaction _transaction;
public Func<Task> BeginTransaction()
{
Task lockDispose = CommitTransaction();
using (_transaction = _dbContext.Database.BeginTransaction())
{
return async() =>
{
await lockDispose;
};
Task.WaitAll(lockDispose); //This code is unreachable.
}
}
private async Task CommitTransaction()
{
_transaction.Commit();
await Task.CompletedTask;
}
โปรดทราบว่าเวลาดำเนินการของผลลัพธ์ Func ขึ้นอยู่กับผู้ใช้บริการนี้
ฉันตรวจสอบคำถามนี้แล้ว และไม่ใช่คำตอบของฉัน
BeginTransaction
อย่างไร - person Theodor Zoulias   schedule 20.12.2020Func<Task>
นั้นมีความหมายหรือสะดวก หากคุณไม่ต้องการให้พวกเขาทำธุรกรรมสองครั้ง คุณสามารถให้ส่วนหน้าTransaction
ด้วยเมธอดCommitTransaction
ที่จะเรียกใช้Transaction.CommitTransaction
พื้นฐานที่แท้จริงได้มากที่สุดหนึ่งครั้ง - person Theodor Zoulias   schedule 21.12.2020