2015-04-15 41 views
1

我在SQLite中保存了以下相关的POCO实体。自动查询与相关记录不同的结果

public class Customer 
{ 
    [PrimaryKey] 
    public int Id { get; set; } 
    public string Name { get; set; } 
    [Reference] 
    public List<Order> CustomerOrders { get; set; } 
} 

public class Order 
{ 
    [PrimaryKey] 
    public int Id { get; set; } 
    public int CustomerId { get; set; } 
    public string Type { get; set; } 
    public int Qty { get; set; } 
} 

使用带内以下自动查询加入

public class AutoQueryRequest : QueryBase<Customer>, IJoin<Customer, Order> 
{ 
} 

如果我有3只相关的订单记录1个客户记录,内部联接查询返回3个记录客户的(如预期)。由于订单已包含在客户实体中,因此如何才能使AutoQuery仅返回不同的客户记录(本例中为1)?

回答

1

,因为它们可以自动加载的,所以你的自动查询服务只需要查询该客户父POCO,如您不需要参加在Order表加载OrmLite POCO参考文献:

public class QueryCustomers : QueryBase<Customer> {} 
+0

感谢快速的回应。我尝试使用客户的查询,但无法搜索订单中的字段。例如,如果我想要获得所有具有类型“A”,“B”和“C”的订单的客户记录(以及相关订单),我尝试使用/ QueryCustomers?CustomerOrderTypes = A,B,C但它没有'工作。我是否必须使用任何自定义AutoQuery实现? – nivjen

+0

@nivjen不会让你查询订单,你需要一个自定义的AutoQuery实现。 – mythz

+0

感谢您的澄清。在那种情况下,我是否必须在Customer和Order实体之间使用内部联接?任何指向示例/文档的指针都会很棒! – nivjen