我最近开始评估Dapper作为EF的潜在替代品,因为我对生成的SQL并不太满意,并希望对它进行更多的控制。我有一个关于在我的域模型中映射复杂对象的问题。比方说,我有一个名为Provider的对象,Provider可以包含IEnumerable类型的多个属性,只应通过父提供者对象(即聚合根)来访问它。我已经看过类似的帖子,它们使用QueryMultiple和Map扩展方法进行了解释,但是想知道如果我想编写一个方法可以使整个对象图急切加载,如果Dapper能够一举完成或者如果它需要完成零食。作为一个例子可以说,我的目标看起来像下面这样:Dapper正确的对象/聚合映射
public AggregateRoot
{
public int Id {get;set;}
...//simple properties
public IEnumerable<Foo> Foos
public IEnumerable<Bar> Bars
public IEnumerable<FooBar> FooBars
public SomeOtherEntity Entity
...
}
是否有填充用小巧玲珑的整个对象图的一种简单的方法?
您将不得不为此构建一些手动扩展,没有内置的图发现和自动SQL生成方法 –
感谢您的回复Sam,那么不是自动的解决方案,而是使用SQL查询?那可能吗?另外,如何处理SO呢?或者生成单独的查询来处理这种类型的关系和复杂性? – mreyeros
大家下午好,我只是另一个快速问题,我注意到在Query方法中,我可以使用方法重载之一传递多达5个对象。这种方法可以用来产生我在这里想要做的事吗,还是我误解了它的用法? – mreyeros