Метод Mock GroupBy с базой данных в памятиC#

Место общения программистов C#
Ответить
Anonymous
 Метод Mock GroupBy с базой данных в памяти

Сообщение Anonymous »

Следующий метод отлично работает с SQL Server, никаких проблем.

Код: Выделить всё

public async Task GetLatestHashes(long jobId, CancellationToken token)
{
var context = _contextFactory.Create();

var hashes = await context.Set
()
.AsNoTracking()
.Where(x => x.JobId == jobId)
.GroupBy(x => x.Hash)
.Select(g => new HashRecord
{
Hash = g.Key,
Status = g.Any(x => x.Status == RPStatus.Successful) ? RPStatus.Successful :
g.Any(x => x.Status == RPStatus.Failed) ? RPStatus.Failed : RPStatus.Skipped
})
.ToArrayAsync(token);

return hashes;
}
Код PRH выглядит примерно так:

Код: Выделить всё

public class ProcessedRecordHash
{
public long JobId { get; set; }

public RPStatus Status { get; set; }

public byte[] Hash { get; set; } = Array.Empty();
}
Для этого метода мне нужно создать модульный тест с базой данных в памяти, но, поскольку GroupBy работает со свойством Hash, которое представляет собой массив байтов, два массива с одинаковыми значения для GroupBy отличаются, поскольку сравнение осуществляется по ссылке.
Какие альтернативы вы предлагаете для решения этой проблемы с помощью GroupBy?

Подробнее здесь: https://stackoverflow.com/questions/791 ... y-database
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»