using System.Linq.Expressions; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Query; using WTA.Shared.Domain; namespace WTA.Shared.Data; public interface IRepository where TEntity : BaseEntity { IQueryable Queryable(); IQueryable AsNoTracking(); IQueryable AsNoTrackingWithIdentityResolution(); void Update(Expression, SetPropertyCalls>> setPropertyCalls, Expression> predicate); void Delete(Guid[] guids); void Delete(Expression> predicate); void Insert(TEntity entity); void SaveChanges(); DbContext DbContext(); void DisableSoftDeleteFilter(); void DisableTenantFilter(); }