2013-05-07 5 views
0

ОК здесь сделка. im работает с шаблоном MVVM в C#. У меня есть класс PlaceChild, PlaceChildList и класс Manage, который получил в нем PlaceChildList. И PlaceChild получил ForeignKey ManageID. Теперь я хочу в методе «LoadProperty» в классе Manage для заполнения PlaceChildList с помощью PlaceChild, у которого есть внешний ключ ManageID. Я знаю, что есть специальный способ обработки с foreignkeys, но я ничего не мог найти. поэтому ссылки были бы полезными. ТНХCSLA Загрузка списка ForeignKey в LoadData

Короткие: Классы ->

Управление

PlaceChild

PlaceChildList

Управление содержит PlaceChildList которым я хочу, чтобы заполнить PlaceChild объекты которым получил ForeignKey руководите.

- рабочих таблиц>

Управление

Place (ForeignKey = ManageID)

private void LoadData(Data.Manage data) 
    { 
     using (BypassPropertyChecks) 
     { 
      this.ID = data.ID; 
      this.Name = data.Name; 

      // this.PlaceChildListdata = .... get data by foreign key this.ID 
     } 
    } 
+0

Возникает вопрос, как реализовать код DataPortal_Fetch для извлечения данных объекта или кода DataPortal_Insert/Update для сохранения данных объекта? –

+0

Класс управления должен извлекать все объекты PlaceChild, которые получили право ForeignKey.i надеялись, что есть что-то вроде «получить все данные по внешнему ключу» -функция: P –

ответ

0

Как вы, наверное, знаете, CSLA не реализует свой код доступа к данным, вы делаете это.

Портал данных действительно помогает организовать загрузку объектов с данными. Я предполагаю, что вы используете инкапсулированный вызов (DataPortal_XYZ), а не заводскую реализацию на портале данных.

(и я предполагаю, что вы читали книгу в «Использование CSLA 4», или что-то сравнимое на протяжении многих лет)

Портал данных имеет понятие дочернего объекта. Поэтому в методе DataPortal_Fetch вашего корневого объекта (который, как я полагаю, вызывает ваш метод LoadData, как показано в вашем сообщении), вы можете вызвать DataPortal.FetchChild для извлечения каждого дочернего элемента.

Метод FetchChild принимает массив params, позволяя вам передавать любые параметры, необходимые для загрузки каждого дочернего объекта с данными.

В случае коллекции родительский объект (класс списка) обычно вызывает DAL, чтобы вернуть все данные для коллекции, а затем перебирает эти данные, вызывая FetchChild для создания и загрузки каждого дочернего объекта. В качестве параметра передается конкретная строка данных для этого дочернего элемента.

Существует множество примеров этого в папке «Образцы» в загрузке установщика CSLA. И книга «Использование CSLA 4: Data Access» охватывает все это в деталях.