Не имеет успеха с 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?