【问题标题】:How to work around ServiceStack OrmLite's limit of seven joined tables如何解决 ServiceStack OrmLite 的七个连接表的限制
【发布时间】:2021-12-22 04:19:33
【问题描述】:

使用 ServiceStack OrmLite (5.1.0),我们需要运行一个查询,该查询会引入 8 个连接表(这是一个产品表 - 我们需要提取产品以及有关其类别、品牌、供应商和等等)。

OrmLite 提供了例如SqlExpression.Select<T1, T2, T3, T4, T5, T6, T7>(),但这是一张太少的表。同样的限制似乎扩展到所有查询方法 - 例如,IDbConnection.SelectMultiAsync<T1, T2, T3, T4, T5, T6, T7>()。

我们可能会运行两个查询并在代码中连接数据,但是否有一种使用 OrmLite 的解决方法可以将其保留在一个连接查询中?

(我知道我们应该升级,很高兴知道这个限制是否在以后的版本中被取消,但现在我正在寻找一种在 5.1 下解决这个问题的方法)

【问题讨论】:

    标签: mysql .net-core servicestack ormlite-servicestack


    【解决方案1】:

    OrmLite 的最新 v5.12 现在在其SqlExpression.Select<> API 中支持 12 个表。

    SelectMultiAsync 返回一个generc .NET Tuple<>,它最多有8 个通用参数,我刚刚在this commit 中添加了对它的支持,它应该会在接下来的2 天内在NuGet 上可用。

    【讨论】:

    • 天啊!又一个明星支持! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多