【发布时间】:2017-10-02 22:59:54
【问题描述】:
我创建了a repository with a complete example of what I'm trying to do。
我有以下架构:
class Order
{
public int OrderId { get; set; }
}
class LineItem
{
public int LineItemId { get; set; }
public int OrderId { get; set; }
}
我正在使用 ServiceStack.OrmLite 左加入 Order 和 LineItem,使用以下代码:
var query = db.From<Order>()
.LeftJoin<LineItem>()
.Where(o => o.OrderId == 1);
var results = db.SelectMulti<Order, LineItem>(query);
SelectMulti() 返回一个List<Tuple<Order, LineItem>>。当订单没有订单项时,我会返回 new LineItem() 而不是 null。
我希望得到null 的回复,这样我就可以区分“此订单不存在订单项”和“此订单有一个具有默认值的订单项”。
我可以检查订单项的OrderId 是否等于订单的OrderId,但理论上我可以有OrderId 0 的订单,所以在这种情况下我不会'说不出来。
有没有更好的方法来使用 OrmLite 进行左连接?
【问题讨论】:
标签: c# servicestack ormlite-servicestack