Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Подготовка БД для работы в Silverlight Business Application / 25 сообщений из 45, страница 1 из 2
07.04.2011, 15:30
    #37204933
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
По учебе задали написать проект используя шаблон Silverlight Business Application Templat – нужно приложение для ввода информации по проектам. Начал с малового создания базы данных для хранения информации по проектам:

Создал таблицу ProjectUser

Код проекта ProjectId - primary key
Имя пользователя создавшего проект UserName
Название проекта ProjectName
Краткое описание Description
Дата начала проекта DateStart
Дата окончания проекта DateEnd
Горизонт расчета HC
KeyID


Создал таблицу CashFlow для денежного потока
Код проекта ProjectId
Приток денежных средств Inflow
Отток денежных средств Outflow
Год Year
CashFlowID - primary key




Связал таблицы по полям ProjectId - ProjectId


Создал модель ProjectBD указав в качестве источников таблицы ProjectUser и CashFlow.



Но вот тут и проблема "связь один к одному "
Подскажите пожалуйста почему связь один к одному ?

Нужна связь один ко многим т.к. проект длится несколько лет и для каждого года нужно отразить приток и отток денежных средств
...
Рейтинг: 0 / 0
07.04.2011, 16:14
    #37205073
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

Приношу извинения наверно усталость
Ошибка в том что я пишу "Связал таблицы по полям ProjectId - ProjectId"
а на слайде ProjectId - CashFlowID.

Спасибо!!
...
Рейтинг: 0 / 0
07.04.2011, 23:35
    #37205779
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

ну если вы посмотрите внимательно, то найдете CashFlow в таблице ProjectUser это и есть многое-ко-многим
...
Рейтинг: 0 / 0
08.04.2011, 16:30
    #37207086
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
ошибка была в окне привязке должно было быть вот так:


уТКаsamun, ну если вы посмотрите внимательно, то найдете CashFlow в таблице ProjectUser это и есть многое-ко-многим
Подскажите пожалуйста где посмотреть ? и где я допустил ошибку что у меня получилось связь "многое-ко-многим"??
...
Рейтинг: 0 / 0
08.04.2011, 16:36
    #37207109
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
и теперь файл ProjectBD.edmx модель данных выглядит вот так
...
Рейтинг: 0 / 0
08.04.2011, 16:57
    #37207160
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
Теперь для доступа к таблицам ProjectUser и CashFlow нужно создать класс DomaneService ProjectInOu для записи в таблицу информации по проекту.

Так же в клиентской части проекта (Silverlight) создал страницу InputProject для ввода пользователем информации по проекту
В XAML файл InputProject.xaml Добавил
Код: plaintext
1.
2.
3.
4.
riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:ProjectUser, CreateList=true}" Height="0" LoadedData="projectUserDomainDataSource_LoadedData_1" Name="projectUserDomainDataSource" QueryName="GetProjectUsersQuery" Width="0">
            <riaControls:DomainDataSource.DomainContext>
                <my1:ProjectInOu />
            </riaControls:DomainDataSource.DomainContext>
 </riaControls:DomainDataSource>

Вот тут у меня вопрос как лучше поступить с добавлением строк в таблицу CashFlow?

у одного проекта может быть несколько лет в которых есть приток и отток денежных средств т.е. одной строке в таблице ProjectUser соответствуют несколько строк в таблицеCashFlow, как сделать ввод информации правильно ?

Я предположил что можно сделать вот так: добавить в проект дочернее окно CashFlowChildWindow.xaml
В него добавил
Код: plaintext
1.
2.
3.
4.
5.
        <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my1:CashFlow, CreateList=true}" Height="0" LoadedData="cashFlowDomainDataSource_LoadedData" Name="cashFlowDomainDataSource" QueryName="IQueryable" Width="0">
            <riaControls:DomainDataSource.DomainContext>
                <my:ProjectInOu />
            </riaControls:DomainDataSource.DomainContext>
        </riaControls:DomainDataSource>
а также поле public int ProjectId { get; set; }
т.е. доступ к таблице CashFlow через cashFlowDomainDataSource по средствам метода IQueryable в который передается ProjectId
код из класса ProjectInOu.cs
Код: plaintext
1.
2.
3.
 public IQueryable<CashFlow> IDGetCashFlows(int PrId)
        {
            return this.ObjectContext.CashFlows.Where(a => a.ProjectId.CompareTo(PrId));
        }
Как вы думаете такое подход ля добовления информации в связанные таблицы верен ?
...
Рейтинг: 0 / 0
09.04.2011, 15:04
    #37207993
pitachek69
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
немного поофтоплю

уТКа,

может будет интересно , Вы вроде как-то искали)
...
Рейтинг: 0 / 0
09.04.2011, 16:05
    #37208051
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
pitachek69немного поофтоплю

уТКа,

может будет интересно , Вы вроде как-то искали)

Спасибо за ценный совет по теме ;))
...
Рейтинг: 0 / 0
09.04.2011, 17:09
    #37208111
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
pitachek69,

:)

спасибо, работодатель уже нашел меня.
...
Рейтинг: 0 / 0
09.04.2011, 17:13
    #37208117
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

если вам нужно подобие Мастер-детаил, то лучше реализовать его на отдельной странице и заюзать загрузку данных через Navigation Framework, а потом разместить эту страницу там где потребуется через Frame.
...
Рейтинг: 0 / 0
09.04.2011, 17:21
    #37208126
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

да к стати, вам может быть крайне полезен мой проект , писал специально для одного из проектов.
...
Рейтинг: 0 / 0
09.04.2011, 17:36
    #37208136
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКаsamun,

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

это я устал и ничего не могу найти, или там (на странице мой проект ) нет вообще описания ?
...
Рейтинг: 0 / 0
09.04.2011, 17:50
    #37208150
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

описание есть, но оно скромное:
авторProject Description
Silverlight Ria Services Ex - is Extension library for Silverlight that helps Developers to work with RiaServices and create Bussines Applications.

лучше перейти на страницу загрузки и скачать пример, там увидите как все работает.
...
Рейтинг: 0 / 0
09.04.2011, 17:59
    #37208156
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
у меня вот такой вопрос
если я запишу вот так
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:ProjectUser, CreateList=true}" Height="0" LoadedData="projectUserDomainDataSource_LoadedData_2" Name="projectUserDomainDataSource" QueryName="GetProjectUsersQuery" Width="0">
<riaControls:DomainDataSource.DomainContext>
<my1:ProjectInOu />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor Operator="IsEqualTo" PropertyPath="UserName" Value="asdsa"/>
</riaControls:DomainDataSource.FilterDescriptors>
</riaControls:DomainDataSource>
то получается что с сервера на клиентскую сторону будут переданы все строки из базы а патом отфильтрованы те у которых поле UserName не начинается с asdsa???
вопрос задан к тому что если в базе много записей то они все будут переданы клиенту а патом отфильтрованы на клиентской стороне ? ну как бы объем будет большой передан
...
Рейтинг: 0 / 0
09.04.2011, 18:32
    #37208180
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

подскажите пожалуйста вот тут MSDN написано:

Добавление параметров к запросу
В некоторых случаях для метода запроса требуются значения параметров. Обычно методу запроса требуется значение параметра для фильтрации возвращаемых данных. Класс DomainDataSource предоставляет коллекцию QueryParameters для упрощения добавления параметров. В следующем примере показано, как добавить параметр со значением, которое задается в декларативном тексте.
и пример:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<Grid x:Name="LayoutRoot" Background="White">
    <riaControls:DomainDataSource Name="source" QueryName="GetProductsByColor" AutoLoad="true">
        <riaControls:DomainDataSource.DomainContext>
            <domain:ProductDomainContext />
        </riaControls:DomainDataSource.DomainContext>
        <riaControls:DomainDataSource.QueryParameters>
            <riaControls:Parameter ParameterName="color" Value="Black" />
        </riaControls:DomainDataSource.QueryParameters>
    </riaControls:DomainDataSource>
    <data:DataGrid ItemsSource="{Binding Data, ElementName=source}" />
</Grid>
Когда я пытаюсь в своем примере для запроса GetProjectUsersUsName
Код: plaintext
1.
2.
3.
4.
5.
6.
 public EntityQuery<ProjectUser> GetProjectUsersUsNameQuery(string UserName)
        {
            Dictionary<string, object> parameters = new Dictionary<string, object>();
            parameters.Add("UserName", UserName);
            this.ValidateMethod("GetProjectUsersUsNameQuery", parameters);
            return base.CreateQuery<ProjectUser>("GetProjectUsersUsName", parameters, false, true);
        }

Настроить
элемент управления DomainDataSource
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:ProjectUser, CreateList=true}" Height="0" LoadedData="projectUserDomainDataSource_LoadedData_2" Name="projectUserDomainDataSource" QueryName="GetProjectUsersUsNameQuery" Width="0">
            <riaControls:DomainDataSource.DomainContext>
                <my1:ProjectInOu />
                <riaControls:DomainDataSource.QueryParameters>
                    <riaControls:Parameter ParameterName="UserName" Value="asdsa" />
                </riaControls:DomainDataSource.QueryParameters>
            </riaControls:DomainDataSource.DomainContext>
            <riaControls:DomainDataSource.FilterDescriptors>
                <riaControls:FilterDescriptor Operator="IsEqualTo" PropertyPath="UserName" Value="asdsa"/>
            </riaControls:DomainDataSource.FilterDescriptors>
        </riaControls:DomainDataSource>

то для строки <riaControls:DomainDataSource.QueryParameters> выводит ошибку "Для типа "DomainDataSource" не найдено присоединяемое свойство "QueryParameters"."

Эт я гдето ошибся ?
...
Рейтинг: 0 / 0
09.04.2011, 19:25
    #37208222
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

а зачем вы
авторriaControls:DomainDataSource.QueryParameters
засунули в
авторriaControls:DomainDataSource.DomainContext
?

вот он и ругается...

авторон что, все будет грузить на клиента?
нет, фильтрация происходит на сервере и зачем результаты возвращаются на клиент.
...
Рейтинг: 0 / 0
12.04.2011, 11:41
    #37211482
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

Подскажите пожалуйста к чему надо привязать кнопку для добавления новой сущности ??
Как делал:
Для заполнения таблиц сделал вот так: разместил на форме элементы управления вот таким способом




Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
  <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:ProjectUser, CreateList=true}" Height="0" LoadedData="projectUserDomainDataSource_LoadedData" Name="projectUserDomainDataSource" QueryName=" GetProjectUsersUsNameQuery" Width="0">
            <riaControls:DomainDataSource.DomainContext>
                <my1:ProjectInOu />
            </riaControls:DomainDataSource.DomainContext>
        </riaControls:DomainDataSource>
        <Grid DataContext="{Binding ElementName=projectUserDomainDataSource, Path=Data}" HorizontalAlignment="Left" Margin="48,33,0,0" Name="grid1" VerticalAlignment="Top" Height="207" Width="218">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <sdk:Label Content="Date End:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <sdk:DatePicker Grid.Column="1" Grid.Row="0" Height="23" HorizontalAlignment="Left" Margin="3" Name="dateEndDatePicker" SelectedDate="{Binding Path=DateEnd, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="Date Start:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <sdk:DatePicker Grid.Column="1" Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="3" Name="dateStartDatePicker" SelectedDate="{Binding Path=DateStart, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="Description:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <TextBox Grid.Column="1" Grid.Row="2" Height="23" HorizontalAlignment="Left" Margin="3" Name="descriptionTextBox" Text="{Binding Path=Description, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="HC:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <TextBox Grid.Column="1" Grid.Row="3" Height="23" HorizontalAlignment="Left" Margin="3" Name="hCTextBox" Text="{Binding Path=HC, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="Project Id:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <TextBox Grid.Column="1" Grid.Row="4" Height="23" HorizontalAlignment="Left" Margin="3" Name="projectIdTextBox" Text="{Binding Path=ProjectId, Mode=OneWay}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="Project Name:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <TextBox Grid.Column="1" Grid.Row="5" Height="23" HorizontalAlignment="Left" Margin="3" Name="projectNameTextBox" Text="{Binding Path=ProjectName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
            <sdk:Label Content="User Name:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
            <TextBox Grid.Column="1" Grid.Row="6" Height="23" HorizontalAlignment="Left" Margin="3" Name="userNameTextBox" Text="{Binding Path=UserName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
  </Grid>

Добавил кнопку для сохранения изменений
Код: plaintext
1.
<Button Content="Save" Height="38" HorizontalAlignment="Left" Name="button1" VerticalAlignment="Top" Width="75" Command="{Binding ElementName=projectUserDomainDataSource, Path=SubmitChangesCommand}" Grid.Column="2" Grid.Row="8" />

Добавил кнопку для отмены изменений
Код: plaintext
1.
<Button Content="Cancel" Grid.Column="1" Grid.Row="8" Height="23" HorizontalAlignment="Left" Margin="50,10,0,0" Name="button2" VerticalAlignment="Top" Width="75" Command="{Binding ElementName=projectUserDomainDataSource, Path=RejectChangesCommand}" />
Для просмотра всех сущностей добавил DataPager
Код: plaintext
1.
<sdk:DataPager Grid.ColumnSpan="3" Grid.Row="9" Height="26" HorizontalAlignment="Left" Margin="42,0,0,0" Name="dataPager1" PageSize="10" VerticalAlignment="Top" Width="200" Source="{Binding ElementName=projectUserDomainDataSource, Path=Data}" />

Подскажите пожалуйста к чему надо привязать кнопку для добавления новой сущности (новой записи в таблицу)??
...
Рейтинг: 0 / 0
12.04.2011, 12:02
    #37211548
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

Еще для работы с таблицами рекомендуют использовать второй вариант, использованием контрола DataFrom:
например вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
  <riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:ProjectUser, CreateList=true}" Height="0"
 LoadedData="projectUserDomainDataSource_LoadedData" Name="projectUserDomainDataSource" 
QueryName="GetProjectUsersUsNameQuery"  Width="0">
            <riaControls:DomainDataSource.DomainContext>
                <my1:ProjectInOu />
            </riaControls:DomainDataSource.DomainContext>
        </riaControls:DomainDataSource>
      
        <toolkit:BusyIndicator IsBusy="{Binding ElementName=projectUserDomainDataSource, Path=DomainContext.IsLoading}" 
                 BusyContent="{Binding Path=Strings.BusyIndicatorLoadingData, Source={StaticResource ApplicationResources}}">
            <toolkit:DataForm AutoGenerateFields="False" ItemsSource="{Binding ElementName=projectUserDomainDataSource, Path=Data}">
                <toolkit:DataForm.EditTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="59*" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="Auto" />
                                
                            </Grid.RowDefinitions>
                            <sdk:Label Content="Date End:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <sdk:DatePicker Grid.Column="1" Grid.Row="0" Height="23" HorizontalAlignment="Left" Margin="3" Name="dateEndDatePicker" SelectedDate="{Binding Path=DateEnd, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="Date Start:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <sdk:DatePicker Grid.Column="1" Grid.Row="1" Height="23" HorizontalAlignment="Left" Margin="3" Name="dateStartDatePicker" SelectedDate="{Binding Path=DateStart, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="Description:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <TextBox Grid.Column="1" Grid.Row="2" Height="23" HorizontalAlignment="Left" Margin="3" Name="descriptionTextBox" Text="{Binding Path=Description, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="HC:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <TextBox Grid.Column="1" Grid.Row="3" Height="23" HorizontalAlignment="Left" Margin="3" Name="hCTextBox" Text="{Binding Path=HC, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="Project Id:" Grid.Column="0" Grid.Row="4" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <TextBox Grid.Column="1" Grid.Row="4" Height="23" HorizontalAlignment="Left" Margin="3" Name="projectIdTextBox" Text="{Binding Path=ProjectId, Mode=OneWay}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="Project Name:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <TextBox Grid.Column="1" Grid.Row="5" Height="23" HorizontalAlignment="Left" Margin="3" Name="projectNameTextBox" Text="{Binding Path=ProjectName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
                            <sdk:Label Content="User Name:" Grid.Column="0" Grid.Row="6" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
                            <TextBox Grid.Column="1" Grid.Row="6" Height="23" HorizontalAlignment="Left" Margin="3" Name="userNameTextBox" Text="{Binding Path=UserName, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" Width="120" />
                        </Grid>
                    </DataTemplate>
                </toolkit:DataForm.EditTemplate>
            </toolkit:DataForm>

Подскажите пожалуйста:
1. что предпочтительней первый или второй вариант использование в каких случаях?
2. почему при использовании кнопок встроенных в контрол DataFrom (Delete - удаление сущности, Add - добавление, Ok - сохранение ) изменения не заносятся в Таблицу на сервере ??
...
Рейтинг: 0 / 0
12.04.2011, 13:52
    #37211833
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

для редактирования/добавления сущностей лучше использовать DataForm.

для того, чтобы данные ушли на сервер, их необходимо отправить:

Код: plaintext
<ваша_DomainDataSource>.SubmitChanges();
...
Рейтинг: 0 / 0
12.04.2011, 13:55
    #37211842
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

авторпочему при использовании кнопок встроенных в контрол DataFrom (Delete - удаление сущности, Add - добавление, Ok - сохранение ) изменения не заносятся в Таблицу на сервере ??
каждый раз, когда вы нажимаете на одну из этих кнопок, вы как бы помечаете, какую запись добавить, какую редактировать, а какую удалить, но отметка происходит на Клиентской части, поэтому, чтобы изменения вступили в силу (оказались на сервере) их необходимо отправлять (см. ответ выше)
...
Рейтинг: 0 / 0
12.04.2011, 14:42
    #37211983
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

а нет ли свойства DataForm которое бы указывала что на (Delete - удаление сущности, Ok - сохранение) надо сразу сохранять на сервере?

или надо подписаться на событие нажатие кнопки (Delete - удаление сущности, Ok - сохранение) и например добавить окно подтверждения и вызвать метод <ваша_DomainDataSource>.SubmitChanges();
...
Рейтинг: 0 / 0
12.04.2011, 15:30
    #37212149
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

я эти кнопки не использую вообще, просто отключаю, т.к. добавление/редактирование/сохранение реализую самостоятельно.
...
Рейтинг: 0 / 0
12.04.2011, 16:45
    #37212384
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

а можно посмотреть как вы их реализуете. т.к. с сохранить и отмена я разобрался. осталось разобраться как с листать, добавить, удалить.
...
Рейтинг: 0 / 0
12.04.2011, 18:47
    #37212745
samun
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
уТКа,

у меня вот такой вопрос так как у меня две связанные таблицы та я как Вы и советовали сделал отдельное окно для отображения сушнастей связанной таблицы

в моем примере
я добавил на форму под DataForm (описание в Сообщении: 16) кнопку. и написал обработчик события
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
private void button1_Click(object sender, RoutedEventArgs e)
        {
            var win = new CashFlowChildWindow();
            ProjectUser proj = ProjectDataForm.CurrentItem as ProjectUser;
            //proj.CashFlows
         
            win.ProjectId = proj.ProjectId;
            win.cash = proj.CashFlows;
            win.Show();
        }

Если я правильно понял (из подсказки ) то поле proj.CashFlows Возвращает коллекцию связанных экземпляров сущности CashFlow
при компиляции оно пустое подскажите пожалуйста почему так?
(в таблице записи есть)
...
Рейтинг: 0 / 0
12.04.2011, 20:02
    #37212864
уТКа
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подготовка БД для работы в Silverlight Business Application
samun,

ссылка на то, как это делается уже была 10495728
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Подготовка БД для работы в Silverlight Business Application / 25 сообщений из 45, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]