2013-03-15 5 views
-2

Я работаю с открытым орфографическим ормом, и мне нужен простой способ получить только родительскую информацию о сущности и сделать пользовательскую загрузку связанной дочерней информации. Я имею в виду, когда я прошу о заказе, я просто хочу получать информацию о заказах и иметь возможность загружать или не размещать информацию о заказах.Пользовательский Lazy Loading Open Access ORM

Если у меня есть:

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() 

И мне нужно, что запрос только для получения заказа данных и не OrderLines, который, кажется, что OA делает по умолчанию.

Edit: Я уже пытался это:

  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 

Я по-прежнему получать данные OrderLines и мне не нужно, что always.Most данных примеров Telerik являются относительно загрузки данных, связанных, но я хочу наоборот. Есть ли способ указать, я хочу или не хочу этого делать? Я надеюсь, что будет ясно:/

+0

добро пожаловать в SO! Мы ожидаем, что пользователь выполнил много «попыток и ошибок», прежде чем задавать здесь вопрос. Пожалуйста, покажите нам, что вы сделали, и почему это не сработало для вас. –

ответ

0

Вам необходимо объявить, что «OrderLines» должен быть ленивым. Вы можете использовать API FetchPlans или объявить, что ассоциация будет загружаться лениво явно в конфигурации.

Если вы используете код только отображение можно определить поведение нагрузки:

orderLineConfiguration.HasAssociation(x => x.Order).WithLoadBehavior(Telerik.OpenAccess.LoadBehavior.Lazy).WithOpposite(c => c.OrderLines); 

В OrderLines теперь будет лениво загрузится. Пожалуйста, обратитесь к документации here и here.

+0

Спасибо, у меня возникли проблемы с пониманием того, какая ленивая загрузка и как работает открытый доступ с помощью ... Но со ссылками, которые вы предоставили, я получил это =) – user1824644

+0

Рад, что я мог бы помочь. Я также предлагаю дополнительно изучить документацию, а также образец пакета, поскольку в OpenAccess есть много очень полезных API. – cubski