Я бы избегал реализации шаблона хранилища с помощью Entity Framework / Entity Framework Core, поскольку он уже реализует шаблон хранилища. В частности, DbContext - это ваш UoW (единица работы), а каждый DbSet - это хранилище. Применение другого слоя поверх этого является избыточным и усложнит обслуживание.
Что касается ваших конкретных c вопросов, вы должны рассмотреть вопрос об использовании Dapper и Entity Framework, если все, что вы делаете вызывает хранимые процедуры, так как есть меньше накладных расходов и, возможно, лучшая производительность в зависимости от скрытых запросов. Он также будет обрабатывать отображение результатов в строго типизированный класс.
фрагмент кода
using (var connection = new SqlConnection("your connection string"))
{
await connection.OpenAsync();
var results = await connection.QueryAsync<SomeClass>("SomeStoredProc",
new {Param1 = value},
commandType: CommandType.StoredProcedure).ToList();
// ... more code
}