2016-06-19 5 views
-1

У меня есть UserControl в WPF, который содержит GridControl Я установил GridControl источник данных в LINQ Е.Ф. присоединиться запрос, как это:МОФ GridControl bindint для жидк Е.Ф. запроса медленно

var x = from B in x.B join E in X.E on B.E_ID equals E.E_ID 
     select B 
gridcontrol.datasource = x.tolist(); 

в XAML коде Я установил колонки управления сетки, как это:

первой колонке FieldName = ID

второй колонке FieldName = E.Name

, так как второй столбец переплетен в E таблицу, GridControl нагрузка awfuly медленно

плз дать мне решение, чтобы увеличить скорость

+0

Вызов 'ToList()' в ваш запрос не нужен, коллекция представляет собой коллекцию, и элемент управления сеткой будет знать, что с ней делать , С учетом сказанного ваш запрос является таким же простым, как он может получить. Если вам это не достаточно быстро, вам нужно рассмотреть пейджинг или установить некоторые индексы в своих базах данных ... медлительность, скорее всего, не от вашего кода. –

+0

спасибо друг, но я тестировал с и без .tolist() и проверил много способов. Если я удалю второй столбец, он работает хорошо, а gridcontrol загружается очень быстро, но проблема в том, что мне нужно показать второй столбец. Когда я использую точку останова, возвращаемое значение запроса быстро, но строка кода, которая задает источник данных gridcontrol, занимает много времени – pooooooneh

+0

@pooooooneh "*, когда я использую точку останова для возвращаемого значения запроса быстро *" Запрос не выполняется, пока вы не материализуете его путем перечисления или вызова 'ToList' и аналогичный. Кроме того, поскольку вы выбираете только запрос «B» в запросе, я не вижу, как это помогает получить «E.Name». Если 'E' - это ленивое загруженное свойство навигации, вам лучше использовать загружаемую загрузку (что-то вроде' db.B.Include (b => bE) .ToList() ') –

ответ

0

со многими благодарственным Иваном Стоев , как он/она сказала, я изменил мой запрос, и это было полезно. Теперь для загрузки пользовательского контроля требуется всего 8 секунд. запрос: db.b.include ("E"). Tolist()