Как я могу использовать запечатанные записи с первичными конструкторами здесь, в Dapper?C#

Место общения программистов C#
Ответить
Anonymous
 Как я могу использовать запечатанные записи с первичными конструкторами здесь, в Dapper?

Сообщение Anonymous »

Как правильно сопоставить одно-ко многим отношениям с Dapper с использованием герметичных записей и первичных конструкторов? Это пытается загрузить разработчиков с помощью соответствующих игр и платформ :

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»