Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Отображение данных из сущности EF в dataGridView с помощью LINQ  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 180
Доброго времени суток, ребята!

Есть у меня таблица в БД (Flood) и соответствующая ей сущность EF, которая имеет 2 внешних ключа (на таблицу Post и SolarActivity), которым в соответствие ставятся 2 виртуальных поля в классе сущности EF. Мне нужно чтобы у меня в List были объекты содержащие не ключи, а какое-то поле сущности этих ключей (ну т. е. показывало не "1", а то что соответствует данному ключу в связанной сущности - "Ваня").
Если я просто выгружаю записи в List и потом отдаю его dataGrideView, то всё нормально выводится, но если обращаюсь по навигационному свойству (внешний ключ) к свойству связанного объекта, то мне вместо значения данного свойства выводится столбец с длинными строк свойства.
var joinPost = transaction.ToList();
           [b] [color=green]dataGridView1.DataSource = joinPost; //Работает - таблицы 1-ая на снимке[/color]
            [color=red]dataGridView2.DataSource = joinPost.Select(y => y.Koords).ToList(); // НЕ работает - таблицы 2-ая на снимке
            dataGridView3.DataSource = FloodService.GetFloodEf().Select(y => y.Post.GeographicalKoordinate.KoordinateText).ToList();//НЕ работает - таблицы 3-ая на снимке[/color][/b]


Как мне сказали:
Shocker.Pro
Грид пытается построить набор столбцов на базе свойств типа string. Нашел у него свойство Length и отобразил его значение. Других свойств не нашел.

Т.е. получается, что Грид видит каждую строку как отдельный объект класса string, с 1-м единственным свойством - Lenght, отображает его, а значение не видит

Объясните как сделать так чтобы отображалась не свойство строки Lenght, а значение данной строки?

К сообщению приложен файл. Размер - 82Kb
28 июл 18, 19:14    [21610862]     Ответить | Цитировать Сообщить модератору
 Re: Отображение данных из сущности EF в dataGridView с помощью LINQ  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 20437
А что мешает не полагаться на автогенерацию столбцов грида, а объявить столбец в том виде, в каком тебе требуется? лень прочитать документацию по гриду?

А если ты хочешь непременно автогенерацию, ну используй класс, в чем проблема-то? опять лень прочитать документацию?
dataGridView2.DataSource = joinPost.Select(y => new Tuple<string>(y.Koords)).ToList();
28 июл 18, 19:24    [21610885]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить