c# - ServiceStack.OrmLite - 我可以做类似 Db.Select<Foo, Bar>() 的事情吗?

标签 c# ormlite-servicestack servicestack-bsd

如何使用 Service.OrmLite 从两个表 JOIN选择 数据,而无需为此目的创建另一个 Poco (Coal+Data)。

我有用于 Coal 和 CoalData 的 Poco,例如:

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

最佳答案

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

For anything more complex (e.g. queries with table joins) you can still easily fall back to raw SQL queries as seen below.

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

关于c# - ServiceStack.OrmLite - 我可以做类似 Db.Select<Foo, Bar>() 的事情吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021442/

相关文章:

c# - 在验证器中访问 Servicstack.net session

c# - 加载相关对象时出现异常。 Entity Framework

c# - 带有嵌套选择查询的 OrmLite

sqlite - CreateParam 没有实现

sql-server - ServiceStack OrmLite 未检索 SqlGeography 字段

redis - ServiceStack.Redis v3 和多主机——推荐架构

c# - 配置串口

c# - 如何从当前鼠标光标位置开始窗体的 StartPosition?

c# - C# 实体中的通用字段类型

asp.net - 找不到请求处理程序: