EF Core 2.2 запускает SELECT * FROM [TableName] без запроса SELECT в моем коде - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть следующие фрагменты кода:

public class BaseEntity
{
    public Guid Id { get; set; }
    public DateTimeOffset CreatedDate { get; set; }
    [Timestamp]
    public byte[] RowVersion { get; set; }
}

public class StateHistory : BaseEntity
{
    public string RegistrationFlowTitle { get; set; }
    public string RegistrationStateTitle { get; set; }
    public Guid? PartyId { get; set; }      
}

public class Party : BaseEntity {
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

//StateHistoryRepository.cs
public class StateHistoryRepository : BaseRepository<StateHistory>, IStateHistoryRepository
{
    public StateHistoryRepository(DbContext context) : base(context)
    { }

    public void Add(StateHistory history)
    {
        Context.StateHistories.Add(history);
    }

    public async Task AddAsync(StateHistory history)
    {
        await Context.StateHistories.AddAsync(history);
    }
}

//PartyService.cs
public async Task<ServiceResponse> UpdatePartyAsync(Party model)
{
    var existingParty = await _partyRepository.GetParty(model.Id, asNoTracking:false);
    if (existingParty == null)
    {
        return ServiceResponse<ServiceResponse>.Failed(message: "");
    }

    existingParty.FirstName = model.FirstName;
    existingParty.LastName = model.LastName;


    await _stateHistoryRepository.AddAsync(new StateHistory{RegistrationFlowTitle = "RegistrationFlowTitle", RegistrationStateTitle = "RegistrationStateTitle", 
        PartyId = model.Id});

    await _partyRepository.CommitAsync();
    return ServiceResponse.Successful();
}

Весь мой проект разработан так, как указано выше. Но в каком-то сценарии ios, о котором я понятия не имею, при запуске SQL Server Profiler я вижу следующий запрос:

SELECT [s].[Id], [s].[CreatedDate], [s].[PartyId], [s].[RegistrationFlowTitle], [s].[RegistrationStateTitle], [s].[RowVersion] FROM [StateHistories] AS [s]

Как это возможно, если у меня нет запроса SELECT на StateHistorie таблице, но она работает в фоновом режиме? Это ошибка от EF Core? Как я могу отследить это? Поскольку таблица содержит более 5 миллионов записей, она создает тупики в базе данных!

...