Несколько запросов с помощью PetaPoco /NPoco?

Скажем, у меня есть эти 2 таблицы / домены

[TableName("TableA")]
    [PrimaryKey("TableAId")]
    public class TableA
    {
        public int TableAId { get; set; }
        public string City { get; set; }

        public TableB TableB { get; set; }

        public TableA()
        {
            TableB = new TableB();
        }

    }

    [TableName("TableB")]
    [PrimaryKey("TableBId")]
    public class TableB
    {
        public int TableBId { get; set; }
        public string Name { get; set; }
    }


var sql = @" Select TableA.*, TableB.*
FROM         TableA INNER JOIN
                      TableB ON TableA.TableBId = TableB.TableBID";

// peta poco
var result = db.Query<TableA, TableB>(sql);

Когда я делаю это TableA.TableB наполняется и TableA идентификатор заполнен, но City нулевой. Я должен указать каждый столбец для его привязки. Можно ли просто использовать звездочку вместо указания каждого столбца?

1 ответ

Решение

То, что у вас там должно работать, однако, я думаю, может происходить из-за следующих условий:

  1. У вас есть колонка TableBId на TableA
  2. У вас нет TableBId собственность на класс TableA
  3. Когда вы запускаете запрос вручную, город приходит после TableBId на TableA.* часть

Сопоставление выполняется путем упорядочения по столбцам, а обработка выполняется:

  1. Если столбец в первом классе в вашем списке общих параметров будет отображен и перейдет к следующему столбцу (все еще используя первый класс для отображения)
  2. Если столбец находится не в первом классе, то он будет считать первый класс законченным и перейдет во второй класс и так далее....
Другие вопросы по тегам