using Microsoft.EntityFrameworkCore; using TakeoutSaaS.Domain.Tenants.Entities; using TakeoutSaaS.Domain.Tenants.Repositories; using TakeoutSaaS.Infrastructure.App.Persistence; namespace TakeoutSaaS.Infrastructure.App.Repositories; /// /// 租户只读仓储实现(AdminApi 使用)。 /// public sealed class EfTenantRepository(TakeoutAdminDbContext context) : ITenantRepository { /// public Task FindByIdAsync(long tenantId, CancellationToken cancellationToken = default) { // 1. 只读查询租户(跨租户) return context.Tenants .AsNoTracking() .FirstOrDefaultAsync(x => x.Id == tenantId, cancellationToken); } /// public async Task> FindByIdsAsync(IReadOnlyCollection tenantIds, CancellationToken cancellationToken = default) { // 1. tenantIds 为空直接返回 if (tenantIds.Count == 0) { return Array.Empty(); } // 2. (空行后) 批量查询租户 return await context.Tenants .AsNoTracking() .Where(x => tenantIds.Contains(x.Id)) .ToListAsync(cancellationToken); } }