Вы можете использовать то, что называется QueryMultiple .
Если вы пытаетесь эффективно вернуть 2 списка из 1 спро c, а затем заполнить их в 2 отдельных списка, вы можете сделать что-нибудь например:
var parameters = new DynamicParameters();
parameters.Add("@myParam1", myParam1);
parameters.Add("@myParam2", myParam2);
string myQuery = "Your query here";
var yourFirstList = new List<YourListType>();
var yourSecondList = new List<YourSecondListType>();
using (var multi = db.QueryMultiple(myQuery, parameters))
{
yourFirstList = multi.Read<YourListType>().ToList();
yourSecondList = multi.Read<YourSecondList>().ToList();
}
Вы должны убедиться, что знаете порядок, в котором возвращаются ваши результирующие наборы, чтобы иметь возможность сделать это, т. е. ваш первый список - первый, а второй - ваш второй. тип списка.