Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
Добрый день в этой теме мне бы хотелось обсудить работу с связанными таблицами в Silverlight Business Application и начать с разбора примера в проекте есть страница Add.xaml в которой Вот этот кусок кода Код: plaintext подскажите пожалуйста правильно ли я понял что он (кусок кода) делает следующее: Создает элемент ComboBox коллекция которого ItemsSource заполняется элементами с использованием объекта cbddsEmployee (который является экземпляром класса ComboBoxDataSource получающего коллекцию сущностей Employee), DisplayMemberPath указывает какое поле выводится в качестве маркера. При выборе элемента в ComboBox, происходит присваивание полю newRecord.Employee элемента коллекции сущностей Employee. Или так: В свойство ComboBox.ItemsSource записывается коллекция сущностей Employee при выборе одного из элементов ComboBox, происходит присваивание полю newRecord.Employee элемента коллекции сущностей Employee. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 12:54 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, ComboBoxExtensions обсуждается здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 13:16 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, по сути все варианты верны. За исключением того, что в ComboBox значения не записываются, мы на них ссылаемся делая Binding (если просто: делаем привязку к данным) немного о том, почему был сделан ComboBoxExtension: в ComboBox.ItemsSource присваивается Источник значений Отступлениепо сути Источник может быть любым, но т.к. стандартный ComboBox глючит, один умный Microsoft MVP взялся за проблему и написал небольшой Extension (класс расширение), для возможности использовать ComboBox в связке с RIA Services ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 14:33 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, в файле Add.xaml.cs Код: plaintext Код: plaintext В чем преимущества, объявить ресурс Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 19:00 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Для данного примера модель данных выглядит вот так: и в примере происходит запись только в таблицу Orders (заказ) и связывание с уже имеющимися записями в таблицах Employees (сотрудники), Customers (Клиенты). Вот предположим стояло бы другая задача добавить клиента и сразу добавить ему заказы! т.е. создали поле Код: plaintext заполнить поле this.newRecord1.Orders вызвали Код: plaintext правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 20:42 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Да и пример у меня при добавлении новой записи в Order выдает исключение для строки Код: plaintext Message=Entity 'Order : 0' is currently being edited and has uncommitted changes. A call to BeginEdit must be followed by a call to EndEdit or CancelEdit before changes can be submitted. StackTrace: в System.ServiceModel.DomainServices.Client.Entity.VerifyNotEditing() в System.ServiceModel.DomainServices.Client.EntityChangeSet.Validate(ValidationContext validationContext) в System.ServiceModel.DomainServices.Client.DomainContext.ValidateChangeSet(EntityChangeSet changeSet, ValidationContext validationContext) в System.ServiceModel.DomainServices.Client.DomainContext.SubmitChanges(Action`1 callback, Object userState) в SLRiaServicesExSample.Views.fOrder.Add.btnSaveRecord_Click(Object sender, RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick() в System.Windows.Controls.Button.OnClick() в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) в System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e) в MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName) InnerException: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2011, 23:23 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, вот, почитай тему, я там отвечал на вопрос "почему должен быть один единственный DomainContext" - так же это описано в документации по RIA Services, просто мало кто такие документы читает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2011, 14:01 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, по поводу ошибки, глянь внимательно на схему, ты добавляешь "Order" в "Customer", а кто будет заполнять "Employee" в "Order" ? так можно делать если схема позволяет, к примеру ошибка может быть вызвана тем, что ключ в "Order" нужно задавать самостоятельно. так же "не понятные" ошибки могут валиться из-за использования множества DomainContext (см. ответ выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2011, 14:07 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, У меня это ошибка на скаченном примере , т.е. я скачал (не изменяя ничего в приложении) запустил и при добавлении новой записи (нажатие кнопки New record, заполнил и нажал кнопку Save ) У меня вот эта ошибка: System.InvalidOperationException не обработано пользовательским кодом Message=Entity 'Order : 0' is currently being edited and has uncommitted changes. A call to BeginEdit must be followed by a call to EndEdit or CancelEdit before changes can be submitted. StackTrace: в System.ServiceModel.DomainServices.Client.Entity.VerifyNotEditing() в System.ServiceModel.DomainServices.Client.EntityChangeSet.Validate(ValidationContext validationContext) в System.ServiceModel.DomainServices.Client.DomainContext.ValidateChangeSet(EntityChangeSet changeSet, ValidationContext validationContext) в System.ServiceModel.DomainServices.Client.DomainContext.SubmitChanges(Action`1 callback, Object userState) в SLRiaServicesExSample.Views.fOrder.Add.btnSaveRecord_Click(Object sender, RoutedEventArgs e) в System.Windows.Controls.Primitives.ButtonBase.OnClick() в System.Windows.Controls.Button.OnClick() в System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) в System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e) в MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, Int32 actualArgsTypeIndex, String eventName) InnerException: Это только у меня такая ошибка ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2011, 10:40 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, ок, посмотрю, нужно было сразу сказать, что эта ошибка валится в примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2011, 10:47 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Буду ждать т.к. на основе Вашего примера, хочу реализовать добавление (редактирование удаление ) клиента и добавление (редактирование удаление ) заказов данному клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2011, 18:58 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, закинул изменения. пересоздал проект, т.к. по какой-то странной причине не грузились стили. причина появления ошибки: в коде перед отправкой данных нужно вызвать [имя_DataForm].CommitEdit(), почитай что это значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2011, 15:00 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, вот тут написано авторCommitEdit Notifies the rest of the code that current state of the item must be saved. An overloaded method exists to decide whether to remain in Edit mode or switch to ReadOnly mode after the method executes. Сообщает остальному коду, что текущее состояние должно быть сохранено. перегруженный метод существует, чтобы решить, следует ли оставаться в режиме редактирования или переключиться на ReadOnly режиме после метод выполняет. Но смысл Метода не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2011, 18:06 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, так вот же ответ: авторСообщает остальному коду, что текущее состояние должно быть сохранено в момент создания/редактирования записи делается ее копия и чтобы результат оказался в записи, нужно сделать CommitEdit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2011, 18:31 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, понятно. доделаю изменения и у меня есть вопросы которые лучше обсудить на примере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2011, 18:37 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Вы в Вашем примере используете вот такую конструкцию редактирования шаблона DataForm: Код: plaintext 1. 2. 3. 4. 5. 6. В интернете распространена вот такая конструкция : Код: plaintext 1. 2. 3. 4. 5. 6. Подскажите пожалуйста в чем отличие преимущества использования NewItemTemplate перед EditTemplate? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2011, 13:44 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, этот ответ ты можешь найти зайдя в Гугл. немного резко, но все же: если ты не сможешь самостоятельно изучать технологии, а в программировании без этого никак, то этим не стоит заниматься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2011, 15:40 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, ну пример опять не работает. вот ошибка при попытки просмотреть базу. "Не удалось открыть базу данных "BNORTHWND.MDF", поскольку она имеет версию 661. Данный сервер поддерживает версию 655 и более ранние. Переход на предыдущую версию не поддерживается." попробовал вот это не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2011, 16:30 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2011, 21:26 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, нашел ответ Нужен для изменения представления (внешнего вида ) DataForm: в режиме редактирования Код: plaintext 1. В режиме просмотра (и такое у нас есть:)) Код: plaintext 1. В режиме добавления новой записи Код: plaintext 1. Для изменения шапки DataForm Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2011, 00:24 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, У меня еще вопрос по вашему примеру вот в Вашем примере хотел что бы поле Employee на странице Add.xaml Код: plaintext 1. 2. я конечно могу сделать Код: plaintext добавить в файле NORTHWNDDomainService.metadata.cs атрибут [Required] для класса OrderMetadata: Код: plaintext 1. 2. 3. Ошибка 1 Ассоциация "SLRiaServicesExSampleWeb.Order.Employee" помечена атрибутом RequiredAttribute. Удалите атрибут RequiredAttribute и вместо этого отметьте им нижележащие элементы внешних ключей. SLRiaServicesExSample т.е. сделать так что бы поле было обязательным я могу например вот так : подписаться на событие EditEnding объекта dfAddRecord Код: plaintext Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. но вот не нравится мне этот способ. может вы знаете более красивое решение ?? (как сделать так чтобы обязательно был выбран Employee) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2011, 01:19 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
нет, подписываться никуда не нужно, почитай про RIA Services, там все сделано по умному. в твоем случае компилятор правильно ругается, т.к. схема БД не предполагает обязательное наличие поля Employee в таблице Order, всегда отталкивайся от схемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2011, 14:07 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Для riaControls:DomainDataSource можно установить фильтр например вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Или использовать добавление параметров к запросу, вить не всегда нужен весь результат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2011, 21:33 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
samun, у тебя ведь есть конрол, посмотри, есть ли там что-то схожее или нет. если в программе хочется использовать полноценный контрол для фильтрации данных, можешь взять мой контрол . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2011, 16:03 |
|
||
|
Использование связанных таблиц в Silverlight Business Application
|
|||
|---|---|---|---|
|
#18+
уТКа, Контрол очень интересный, но мне пока нужен фильтр для источника данных (ComboBoxDataSource) отображаемых в ComboBox. получается что ComboBoxDataSource нельзя использовать для запросов с параметром ? для вот таки: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2011, 19:00 |
|
||
|
|

start [/forum/topic.php?fid=21&msg=37230402&tid=1442339]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 413ms |

| 0 / 0 |
