Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Правильная работа с ADO.NET Entity Framework / 2 сообщений из 2, страница 1 из 1
02.10.2012, 11:15
    #37979762
Gul-79
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная работа с ADO.NET Entity Framework
Добрый день господа!
Помогите решить небольшую проблему, а именно, у меня есть таблица People, которая связана связью (многие к одному) к другим пятью таблицами.
Задача: вывести связанные данные в один ДатаГрид.
Я сделал так:
1. Создал класс DataAccessLayer в нем метод GetAllPeople()
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public IQueryable GetAllPeople(string flag)
        {
            PeoplelEntities db = new PeopleEntities();

            var peopleAll = (from p in db.People

                             join t1 in db.Tabl1 on p.ID equals t1.ID

                             join t2 in db.Tabl2 on p.ID equals t2.ID into Temp2
                             from temp2 in Temp2.DefaultIfEmpty()

                             join t3 in db.Tabl3 on db.ID equals t3.ID into Temp3
                             from temp3 in Temp3.DefaultIfEmpty()
					
		  	и так далее ...................

                             where t1.Name == flag
                             orderby p.Name

                             select new { People = p.Name,Tabl2 = temp2.Name,Tabl3 = temp3.Name });        
            return peopleAll;    
        }


2. Передал результат в ДатаГрид:
Код: c#
1.
2.
3.
4.
5.
public MainWindow()
		{
			this.InitializeComponent();
			this.DataGrid_people.DataContext = new DAL.DataAccessLayer().GetAllPeople(flag);
		}


3. В XAML написал примерно такой код:
Код: c#
1.
2.
3.
4.
5.
<DataGrid x:Name=" DataGrid _people" CanUserSortColumns="True" AutoGenerateColumns="False" ItemsSource="{Binding}" >
                <DataGridTextColumn Binding="{Binding People}"/>
                <DataGridTextColumn Binding="{Binding Tabl2}"/>
                <DataGridTextColumn Binding="{Binding Tabl3}"/>
</DataGrid>


В результате получил желаемый результат, но так как я не обладаю достаточными знаниями, думаю, что мой подход не совсем верен.
Буду признателен за критику и по возможности объясните, как правильно решить данную задачу.
...
Рейтинг: 0 / 0
02.10.2012, 11:31
    #37979807
Алексей К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Правильная работа с ADO.NET Entity Framework
Вместо join часто удобнее пользоваться ассоциациями.

А в целом - всё нормально.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Правильная работа с ADO.NET Entity Framework / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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