2014-02-27 44 views
0

我正在使用Simple.Data,但似乎无法让它完全填充单个查询中的相关对象。我已经检查了StackOverflow上的其他一些问题,但迄今为止还没有成功。Simple.Data嵌套连接检索

我有对象:

public class ProductVersion 
{ 
    public int VersionId { get; set; } 
    public int ModelId { get; set; } 
    public int VariantId { get; set; } 
    public int MarketId { get; set; } 
    public DateTime? FileDate { get; set; } 
    public DateTime? DateFrom { get; set; } 
    public DateTime? DateTo { get; set; } 
    public int RevisionId { get; set; } 
    public Model Model { get; set; } 
    public Variant Variant { get; set; } 
    public Market Market { get; set; } 
} 

public class Model 
{ 
    public int ModelId { get; set; } 
    public string Description { get; set; } 
} 

public class Variant 
{ 
    public int VariantId { get; set; } 
    public string Description { get; set; } 
} 

public class Market 
{ 
    public int MarketId { get; set; } 
    public string Description { get; set; } 
    public int LanguageId { get; set; } 
    public Language Language { get; set; } 
} 

public class Language 
{ 
    public int LanguageId { get; set; } 
    public string Description { get; set; } 
} 

(的ProductVersion有一个模型,变体和市场,和市场有一个语言)

于是,我试图检索使用的ProductVersion的一个实例:

ProductVersion instance = db 
    .ProductVersion 
    .With(db.ProductVersion.Model) 
    .With(db.ProductVersion.Variant) 
    .With(db.ProductVersion.Market) 
    .With(db.ProductVersion.Market.Language) 
    .Get(1); 
    ; 

我得到ProductCatalogVersion的实例返回,与型号,变体,并填充市场属性,但Market.Language为空。我可以看到正在SQL中发出的正确连接,并且正在读取语言表,我只是无法让它填充市场的Language属性。

任何帮助非常感谢。

回答

0

Simple.Data不支持将孙表合并到POCO中。因此,语言表在其他人做的时候不起作用。我相信这个功能是计划在第二版时间线上提供支持的,但是究竟是什么时候才会实施。

+0

非常感谢Hmobius。 这真是一种耻辱,尤其是它发布了正确的SQL,但它并没有让我死在水中,我现在可以解决这个问题。 Simple.Data有很多其他的积极因素,我会继续使用它并等待v2。 – Martin1968