ServiceStack.OrmLite - 我可以做一些像Db.Select <foo,bar =“”>()吗?</foo,>

时间:2014-02-25 17:16:23

标签: c# ormlite-servicestack servicestack-bsd

如何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();

1 个答案:

答案 0 :(得分:1)

ServiceStack.OrmLite不支持像您建议的那样加入两个或更多表。它目前仅支持简单表达式,对于Joins,它建议回退到原始SQL查询。 OrmLite功能See here

  

对于任何更复杂的事情(例如,使用表连接的查询),您仍然可以轻松地回退到原始SQL查询,如下所示。

然而,ServiceStack.OrmLite可能会在不久的将来获得更好的连接支持,因为这是最高open feature request,但在商业ServiceStack产品下。