مخزن جامع کدها و الگوهای توسعه

اسنیپت‌ها، ترفندها و کدهای کاربردی

مجموعه‌ای منتخب از ساختارهای کد، پیکربندی‌های بهینه، پیش‌نیازها و کدهای همراه برای زبان‌ها و فریم‌ورک‌های مختلف.

۱ کد انتخاب شده
دسته‌بندی: .NET ریپازیتوری با Unit Of Work
پاکسازی همه فیلترها
.NET CSHARP 1405/07/10

ریپازیتوری با Unit Of Work (Repository With Unit Of Work)

در معماری تمیز در بخش ریپازیتوری با استفاده از unit of work قوانین SaveChange تغییر میکند .

csharp
public class UserRepository(AppDbContext context) :IUserRepository 
{
    public async Task<IEnumerable<User>> GetAllUserAsync(User user)
    {
        return await context.Users.ToListAsync();
    }

    public async Task<User?> GetUserByIdAsync(int id)
    {
        return await context.Users.SingleOrDefaultAsync(u => u.Id == id);
    }

    public async Task CreateAsync(User user)
    {
        await context.Users.AddAsync(user);
    }

    public Task UpdateAsync(User user)
    {
        context.Users.Update(user);
        return Task.CompletedTask;
    }

    public async Task DeleteAsync(int id)
    {
        var user = await context.Users.SingleOrDefaultAsync(u => u.Id == id);
        if (user != null)
        {
            await DeleteAsync(user);
        }
    }

    public async Task DeleteAsync(User user)
    {
        user.IsDeleted=true;
        user.IsActive= false;
        user.DeleteDate= DateTime.Now;
        await UpdateAsync(user);
    }
}
پیش‌نیازها و کدهای پایه:
1 مورد
مراحل بعد و کدهای تکمیلی:
1 مورد