none
Silverlight , RIA Services , работа с таблицей , удаление записи RRS feed

  • Вопрос

  • Так, у меня есть web проект с silverlight, связь с таблицей происходит через модель

     <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance RegofficeModel:RoRecipient, CreateList=true}" Height="0" LoadedData="roRecipientDomainDataSource_LoadedData" Name="roRecipientDomainDataSource" QueryName="GetRoRecipientsQuery" Width="0"
                                              SubmittedChanges="roRecipientDomainDataSource_SubmitChanges" >
                    <riaControls:DomainDataSource.DomainContext>
                        <myWeb:RegOfficeDomainContext/>
                    </riaControls:DomainDataSource.DomainContext>
                </riaControls:DomainDataSource>

     

    RegofficeModel:RoRecipient

    в datagrid все отображается, даже поиск сделал и пару фильтров, дошел до редактирования таблицы

    начал с легкого-удаление,

       roRecipientDomainDataSource.DataView.Remove(_Recipient);
               
       roRecipientDomainDataSource.SubmitChanges();

    где _Recipient : _Recipient = roRecipientDataGrid.SelectedItem as RoRecipient; моя запись

    запись не пустая, проверил, ошибка такая:

    "Remove" не поддерживается в данном ICollectionView.

    подозреваю что тут замешан domaincontext, а теперь сам вопрос:

    Можно в двух словах объяснить для чего нужен domaincontext, (желательно чтобы он был 1 в проекте, мне досталось от предыдущего программиста целых три-все одинаковые), какие образом происходит удаление из таблицы? Может я где то неправильно связал компоненты или еще что, ну и под конец хотелось бы узнать что это за ошибка

    p.s. пишу первый раз

    26 октября 2011 г. 12:23

Ответы

  •  

    Всё. я разобрался, ура значит в проекте web были определены domenservices мой - domainservices.roRecipient.cs в нем находятся процедуры:

    В первую очередь запрос (querry) который отображает таблицу,

    Ну и процедуры доб/изм/удаления, они были закомменчены, я раскоменнтировал и стало возможным изменять datasouce , вот, не знаю может пригодиться кому

    Как тут закончить не знаю, вроде пометил как ответ

    • Помечено в качестве ответа nicolas_hrameev 27 октября 2011 г. 8:13
    • Изменено nicolas_hrameev 27 октября 2011 г. 8:15
    27 октября 2011 г. 8:13

Все ответы

  • roRecipientDomainDataSource - это DbContext Class? если да, то для удаления элемента надо вызвать DbSet(Of TEntity).Remove у соответствующего DbSet (скорее всего в roRecipientDomainDataSource определено свойство, например, Recipients)
    26 октября 2011 г. 14:20
  • Уважаемый пользователь, пожалуйста, не забудьте отметить сообщение или сообщения, которые являются решением вашей проблемы, даже если это ваше собстевенное сообщение. Это можно сделать с помощью кнопки 'Пометить как ответ', которая есть под каждым сообщением.

    Спасибо.


    Для связи [mail]
    27 октября 2011 г. 6:03
    Модератор
  •  

    нет, это класс riaControls:DomainDataSource, аналогичная конструкция - name_of_datasource.DataView.Remove(grid.selectedItem)

    работает для другой таблицы, и соответственно для name_of_datasource, для моего же roRecipientDomainDataSource не работает, пишет ошибку "Remove" не поддерживается в данном ICollectionView., я сделал вывод что мой roRecipientDomainDataSource определяется как ICollectionView, видимо надо его определить по другому, не знаю

    то же самое при редактировании roRecipientDomainDataSource.DataView.Add(_Recipient);

    Что то не так с описанием datasource, как я понял методы Remove или Add в ручную добавлять не надо


    начинаю подбираться ближе к проблеме datasource по умолчанию не поддерживает изменения. его нужно сделать - IEditableCollectionView, так пишут на англ/амер форумах, но такие инструкции что сразу не разберешся

    Подбираюсь еще ближе свойство roRecipientDomainDataSource.DataView.CanRemove=false у меня но оно только для чтения. мне надо его изменить, в других data source стоит TRUE, вопрос как поставить это свойство в тру если они только для чтения?


    • Помечено в качестве ответа nicolas_hrameev 27 октября 2011 г. 7:15
    • Изменено nicolas_hrameev 27 октября 2011 г. 7:38
    • Снята пометка об ответе nicolas_hrameev 27 октября 2011 г. 8:14
    • Помечено в качестве ответа nicolas_hrameev 27 октября 2011 г. 8:14
    • Снята пометка об ответе Abolmasov DmitryModerator 27 октября 2011 г. 14:15
    27 октября 2011 г. 6:17
  •  

    Всё. я разобрался, ура значит в проекте web были определены domenservices мой - domainservices.roRecipient.cs в нем находятся процедуры:

    В первую очередь запрос (querry) который отображает таблицу,

    Ну и процедуры доб/изм/удаления, они были закомменчены, я раскоменнтировал и стало возможным изменять datasouce , вот, не знаю может пригодиться кому

    Как тут закончить не знаю, вроде пометил как ответ

    • Помечено в качестве ответа nicolas_hrameev 27 октября 2011 г. 8:13
    • Изменено nicolas_hrameev 27 октября 2011 г. 8:15
    27 октября 2011 г. 8:13