简体   繁体   English

ServiceStack.OrmLite-我可以做类似Db.Select的操作吗 <Foo, Bar> ()?

[英]ServiceStack.OrmLite - can I do something like Db.Select<Foo, Bar>()?

How to Select data using Service.OrmLite from two tables JOIN without creating another Poco (Coal+Data) only for that purpose. 如何使用Service.OrmLite从两个表中Select数据JOIN而不为此创建另一个Poco(Coal + Data)。

I have Poco for Coal and for CoalData like: 我有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;}
    ....
}

In Dapper it's simple 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();

ServiceStack.OrmLite does not support joining two or more tables like you suggest. ServiceStack.OrmLite不支持您建议的联接两个或多个表。 It currently only supports simple expressions, and for Joins it recommends falling back to raw SQL queries. 它当前仅支持简单表达式,对于Joins,建议回退到原始SQL查询。 See here for OrmLite functionality. 有关 OrmLite功能的信息, 请参见此处

For anything more complex (eg queries with table joins) you can still easily fall back to raw SQL queries as seen below. 对于任何更复杂的事情(例如,具有表联接的查询),您仍然可以轻松地退回到原始SQL查询,如下所示。

However ServiceStack.OrmLite will likely get better support for joins in the near future, as this is the top open feature request , but under the commercial ServiceStack offering. 但是,ServiceStack.OrmLite可能会在不久的将来获得对连接的更好支持,因为这是最主要的开放功能要求 ,但在商业ServiceStack产品之下。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM