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

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

Сообщение Anonymous »

Как правильно сопоставить одно-ко многим отношениям с Dapper с использованием герметичных записей и первичных конструкторов? Платформы: < /p>
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...
}
}
< /code>
объекты
мои объекты определяются как запечатанные записи с первичными конструкторами, где это возможно: < /p>
[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>
Проблемы, с которыми я сталкиваюсь
Проблемы с картированием: текущий подход требует ручной группировки в памяти после запроса, который кажется неэффективным. < /p>
Инициализация записи: Поскольку в некоторых записях используются первичные конструкторы, я не уверен, как DAPPE Картирование. < /p>
Null Collections: Когда не существует связанных объектов, я получаю null ссылки. Лучший способ обработки группировки связанных объектов? Любая помощь будет оценена!

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-dapper
Ответить

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

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

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

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

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