Насколько мне известно, единственный способ получить порядковый номер, сгенерированный самим запросом, - это использовать перегрузку метода "Select" с 2 параметрами, однако он не работает с IQueryable, поэтому ваш запрос будет выглядеть следующим образом:
Context.tblCompany.Where(e => e.Cmp_Id == this.CompanyId && e.TenantId == this.TenantId)
.Select(e => new { CmpId = e.Cmp_Id })
.AsEnumerable()
.Select((e, i) => new CompanyModel { CmpId = e.CmpId, SrNo = i });
Очевидно, этот порядковый номер будет сгенерирован на клиенте, и результирующее выражение больше не может рассматриваться как IQueryable. В то же время, часть перед «AsEnumerable» будет успешно переведена в SQL.