NPoco onetomany не заселение многих - PullRequest
0 голосов
/ 10 февраля 2019

Не имеет успеха с FetchOneToMany, пример ниже не возвращает значение много.Я перехожу из PetaPoco, где мне приходилось писать привязки для сопоставления один-ко-многим, я чувствую, что упускаю что-то очевидное здесь ...

Звонок:

Database.FetchOneToMany<GroupDto>(x => x.Users, sqlQueries.UserGroupWithUsers, value).FirstOrDefault();

где GroupDto выглядит так:

[TableName("Groups")]
[ExplicitColumns]
[PrimaryKey("GroupId", AutoIncrement = true)]
public class UserGroupPoco
{
    [Column("GroupId")]
    [PrimaryKeyColumn(AutoIncrement = true)]
    public int GroupId { get; set; }

    // plus many more columns

    [ResultColumn]
    public List<UserDto> Users { get; set; }
}    

и UserDto:

[TableName("Users")]
[ExplicitColumns]
[PrimaryKey("Id", AutoIncrement = true)]
public class UserDto
{
    [Column("Id")]
    [PrimaryKeyColumn(AutoIncrement = true)]
    public int Id { get; set; }

    [Column("UserId")]
    public int UserId { get; set; }

    [Column("GroupId")]
    public int GroupId { get; set; }
}

, а SQL:

"SELECT g.*, u.* FROM Groups g
LEFT JOIN Users u
on g.GroupId = u.GroupId
AND g.GroupId = @0";

возвращается без ошибок, возвращая действительный объект GroupПользователь не имеет значения.Запуск SQL в SSMS возвращает ожидаемый результат.

Где я ошибаюсь и как я могу улучшить структуры DTO?

...