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