powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Правильная работа с ADO.NET Entity Framework
2 сообщений из 2, страница 1 из 1
Правильная работа с ADO.NET Entity Framework
    #37979762
Gul-79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день господа!
Помогите решить небольшую проблему, а именно, у меня есть таблица 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
Правильная работа с ADO.NET Entity Framework
    #37979807
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо join часто удобнее пользоваться ассоциациями.

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


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