Предположим, у меня есть следующие таблицы:
tb_1: |user_id|user_name|email|age|
tb_2: |item_id|item_name|value|
tb_3: |user_id|item_id|
И у меня есть модели ниже:
Элемент:
public class Item {
public string Name {get; set;}
public int Value {get; set;}
}
Пользователь:
public class User {
public Guid UserId {get; set;}
public List<Item> Itens {get; set;}
}
Я использую следующий запрос для выполнения поиска:
using(var connection = ...)
{
var query1 = "SELECT ... FROM tb_1";
var query2 = "SELECT ... FROM tb_2 JOIN tb_3 ON ... WHERE tb_3.user_id = @UserId";
var users = await connection.QueryAsync<User>(query1);
foreach(var user in users)
{
user.Itens = await connection.QueryAsync<Item>(query2, user.UserId);
}
return users;
}
Можно ли удалить foreach и использовать только один запрос?
PS: Таблицы от N доN.