ServiceStack.ORMLite - могу ли я сделать что-то вроде Db.Select<Foo, Bar="">()?
-
21-12-2019 - |
Вопрос
Как Select
использование данных Service.OrmLite
из двух таблиц JOIN
без создания другого Poco (уголь +данные) только для этой цели.
У меня есть Poco для Coal и для CoalData, например:
class Coal {
// PK
public long Id {get; set;}
public string Name {get; set;}
}
class CoalData {
// FK
public long Id {get; set;}
public int Prop1 {get; set;}
....
}
В Dapper это просто любить:
var personWithAddress = connection
.Query<Person, Address, Extra, Tuple<Person, Address, Extra>>
(sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId,Id").First();
Решение
ServiceStack.ORMLite не поддерживает объединение двух или более таблиц, как вы предлагаете.В настоящее время он поддерживает только простые выражения, а для соединений рекомендует вернуться к необработанным SQL-запросам. Смотрите здесь для функциональности ORMLite.
Для чего-либо более сложного (например,запросы с объединением таблиц) вы все равно можете легко вернуться к необработанным SQL-запросам, как показано ниже.
Однако ServiceStack.ORMLite, вероятно, получит лучшую поддержку объединений в ближайшем будущем, так как это лучший открыть запрос функции, но в рамках коммерческого предложения ServiceStack.