منظور من استفاده از IunitOfWork بود که در این حالت در تمامی سرویسها در سازنده تزریق میشد و سپس از طریق سازنده dbsetها به صورت گلوبال از طریق متد <Set<T مقدادرهی میشدند و در این حالت متد dispose به uow دسترسی ندارد جهت dispose کردن آن و تنها setها هستند.
یک چنین چیزی:
private readonly DbSet<SmsLog> _smsLogs;
private readonly DbSet<SmsProvider> _smsProviders;
public MessageService(IUnitOfWork uow)
{
_smsLogs = uow.Set<SmsLog>();
_smsProviders = uow.Set<SmsProvider>();
}
public async Task NewSmsLogAsync(SmsLog log)
{
await _smsLogs.AddAsync(log);
}
سپس بحث اعمال savechanges باید روی متد نهایی مثل اکشن صورت میگرفت که در صورت استفاده از چندین متد در یک یا چند سرویس همه با هم همزمان برای ذخیره سازی و دریافت نتیجه به سمت دیتابیس ارسال گردند. مثل ارسال اطلاعات جدید هتل و تصاویر آن. نه تک تک جدا ذخیره شوند. همه با هم یا هیچ کدام