Код: Выделить всё
public async Task GetAllAsync()
{
using (var connection = new SqlConnection(ConnectionString))
{
IEnumerable developers = await connection.QueryAsync(@"
select
developers.id, developers.name,
games.Id, games.Name, games.Image,
games.publisherId, games.releasedate,
games.description, games.trailer,
platforms.id, platforms.name
from developers
left join gamesdevelopers on gamesdevelopers.developerid=developers.id
left join games on games.id=gamesdevelopers.gameid
left join gamesplatforms on gamesplatforms.gameid=games.id
left join platforms on platforms.id=gamesplatforms.platformid",
(developerEntry, game, platform) =>
{
game.Platforms.Add(platform);
developerEntry.Games.Add(game);
return developerEntry;
});
// Additional grouping logic...
}
}
Мои сущности определяются как герметичные записи с первичными конструкторами, где это возможно:
[Table("Developers")]
public sealed record Developer
(
[property: JsonPropertyName("id")]
long Id,
[property: JsonPropertyName("name")]
string Name,
[property: JsonPropertyName("games")]
IEnumerable Games
);
[Table("platforms")]
public sealed record Platform
{
[JsonPropertyName("id")]
public long Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
public List Games { get; set; } = new List();
}
< /code>
Проблемы, с которыми я сталкиваюсь < /strong> < /p>
Проблемы с картированием: текущий подход требует ручной группировки в памяти после запроса, что кажется неэффективным. Коллекция. /> < /ul>
Вопросы < /strong> < /p>
Какой рекомендуемый способ справиться с одно-ко многим отношениям с Dapper при использовании записей? /> < /li>
Есть ли лучший способ обработки группировки связанных сущностей? C# типы записей. Любая помощь будет оценена!
Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-dapper
Мобильная версия