на самом деле не ограничивает вас количеством результатов. Все перегрузки просто набирают его для вас ... но закрытый метод берет массив функций чтения и возвращает массив IEnumerables ... так что он просто становится игрой на кастинг.

я есть базовый репозиторий с универсальным методом Get для возврата данных с помощью Dapper, как

  public T Get<T>(Func<IDbConnection, T> query)
    {
        using (IDbConnection db = new SqlConnection(ConfigurationManager.ConnectionStrings["myDB"].ConnectionString))
        {
            return query.Invoke(db);
        }
    }

Однако теперь у меня есть необходимость повторить несколько данных. Запрос DAL выглядит следующим образом:

var multi = db.QueryMultiple(getCarDataSp , new { CustomerID = customerId, Year = year },
                                commandType: CommandType.StoredProcedure));

var cars = multi.Read<CarDTO>();
var options = multi.Read<CarOptionDTO>();

//wire the options to the cars
foreach(var car in cars){
    var carOptions = options.Where(w=>w.Car.CarID == car.CarID);        //I would override Equals in general so you can write w.Car.Equals(car)...do this on a common DataModel class
    car.Options = carOptions.ToList();
}

Было бы возможно иметь Generic GetMultiple в моем BaseRepository или это было бы вопросом оборачивания get multi в моем методе Get, а затем машины и опции там в собственных отдельных вызовах Get?

Ответы на вопрос(1)

Ваш ответ на вопрос