Vb.net 自定义延迟加载开放访问ORM
我正在使用OpenAccesORM,我需要一种简单的方法来获取父实体信息并定制相关子实体信息。我的意思是,当我要求订单时,我只需要订单信息,并且能够加载或不加载订单行信息 如果我有:Vb.net 自定义延迟加载开放访问ORM,vb.net,telerik-open-access,Vb.net,Telerik Open Access,我正在使用OpenAccesORM,我需要一种简单的方法来获取父实体信息并定制相关子实体信息。我的意思是,当我要求订单时,我只需要订单信息,并且能够加载或不加载订单行信息 如果我有: Public Class Order Public Property Number As Long Public Property Description As String Public Property OrderLines as List(of OrderLines) = new List(of OrderL
Public Class Order
Public Property Number As Long
Public Property Description As String
Public Property OrderLines as List(of OrderLines) = new List(of OrderLines)
End Class
如果我想要,我可以做什么例如:
Dim e as new EntitiesModel()
Dim q as Order = (from c in e.Orders
where c.Number = 5
select c).FirstOrDefault()
我需要查询只是检索订单数据,而不是订单行,这似乎是OA默认的做法
编辑:我已经试过了:
Using dbcontext As New EntitiesModel()
Dim fetchStrategy As New FetchStrategy()
dbcontext.FetchStrategy = fetchStrategy
Dim q As Order
q = (From c In dbcontext.Orders
Where c.PK_Order = 79
Select c).FirstOrDefault
For Each olFound In q.OrderLines
Dim i As Integer
Console.WriteLN(olFound.Description&VbNewLine)
Next
End Using
我仍然在接收订单行数据,我并不总是需要这些数据。telerik的大多数示例都将加载相关数据,但我希望相反。有没有办法指定我想做还是不想做?我希望澄清:/您需要声明“订单行”应该是延迟加载的。您可以使用FetchPlans API,或者声明在配置中显式地延迟加载关联 如果使用仅代码映射,则可以定义加载行为:
orderLineConfiguration.HasAssociation(x => x.Order).WithLoadBehavior(Telerik.OpenAccess.LoadBehavior.Lazy).WithOpposite(c => c.OrderLines);
订单行现在将被延迟加载。请参阅文档和。欢迎来到SO!我们希望用户在这里提问之前已经做了很多“尝试和错误”。请告诉我们你做了什么以及为什么不适合你。谢谢,我在理解什么是延迟加载和OpenAccess的工作方式时遇到了一些问题。。。但是通过你提供的链接,我得到了它=)很高兴我能帮上忙。我还建议进一步研究文档以及示例包,因为OpenAccess中有很多非常有用的API。