如何Select
使用Service.OrmLite
来自两个表JOIN
的数据而不为此目的创建另一个Poco(煤+数据)。
我有Poco for 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中,这很简单like:
var personWithAddress = connection
.Query<Person, Address, Extra, Tuple<Person, Address, Extra>>
(sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId,Id").First();
答案 0 :(得分:1)
ServiceStack.OrmLite不支持像您建议的那样加入两个或更多表。它目前仅支持简单表达式,对于Joins,它建议回退到原始SQL查询。 OrmLite功能See here。
对于任何更复杂的事情(例如,使用表连接的查询),您仍然可以轻松地回退到原始SQL查询,如下所示。
然而,ServiceStack.OrmLite可能会在不久的将来获得更好的连接支持,因为这是最高open feature request,但在商业ServiceStack产品下。