2

如何Select使用Service.OrmLite两个表中的数据JOIN而不为此目的创建另一个 Poco (Coal+Data)。

我有 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 中很简单

var personWithAddress = connection
    .Query<Person, Address, Extra, Tuple<Person, Address, Extra>>
    (sql, (p, a, e) => Tuple.Create(p, a, e), splitOn: "AddressId,Id").First();
4

1 回答 1

1

ServiceStack.OrmLite 不支持像您建议的那样连接两个或多个表。它目前只支持简单的表达式,对于连接,它建议回退到原始 SQL 查询。请参阅此处了解 OrmLite 功能。

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

然而,ServiceStack.OrmLite 可能会在不久的将来获得更好的连接支持,因为这是最重要的开放功能请求,但在商业 ServiceStack 产品下。

于 2014-02-26T12:38:31.377 回答