我正在使用Simple.Data,但似乎无法让它从单个查询中完全填充我的相关对象。我已经检查了StackOverflow上的其他一些问题,但到目前为止还没有成功。
我有对象:
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 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 中发出了正确的连接,并且正在读取语言表,我只是无法让它填充 Market 的语言属性。
任何帮助非常感谢。
Simple.Data 不支持将孙表水化到 POCO 中。因此,语言表不起作用,而其他表则不起作用。我相信此功能计划在 v2 时间表中提供支持,但具体何时实现它还悬而未决。