Несколько запросов с помощью 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 ответ
Решение
То, что у вас там должно работать, однако, я думаю, может происходить из-за следующих условий:
- У вас есть колонка
TableBId
наTableA
- У вас нет
TableBId
собственность на классTableA
- Когда вы запускаете запрос вручную, город приходит после
TableBId
наTableA.*
часть
Сопоставление выполняется путем упорядочения по столбцам, а обработка выполняется:
- Если столбец в первом классе в вашем списке общих параметров будет отображен и перейдет к следующему столбцу (все еще используя первый класс для отображения)
- Если столбец находится не в первом классе, то он будет считать первый класс законченным и перейдет во второй класс и так далее....