У меня есть следующие фрагменты кода:
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 миллионов записей, она создает тупики в базе данных!