Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

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

Есть у меня таблица в БД (Flood) и соответствующая ей сущность EF, которая имеет 2 внешних ключа (на таблицу Post и SolarActivity), которым в соответствие ставятся 2 виртуальных поля в классе сущности EF. Мне нужно чтобы у меня в List были объекты содержащие не ключи, а какое-то поле сущности этих ключей (ну т. е. показывало не "1", а то что соответствует данному ключу в связанной сущности - "Ваня").
Если я просто обращаюсь к этим полям, то мне выдаётся ссылка, а не нужный мне объект, который должен быть по идее по этой ссылки.
В интернете нашёл решение с помощью создание объединения (join) по типу как это делается в SQL.

Но не смотря на то, что объединение было выстроено вроде верно, его тест показал, что вместо значения нужного поля он почему-то возвращает какую-то длину Lenght? Почему так?

var context = new ModelDatabaseFastWaterContex();
            var transaction = from flood in context.Floods
                              join posts in context.Posts on flood.Id_Post equals posts.Id_Post into floodPost
                              from postJoined in floodPost.DefaultIfEmpty()
                              join postKoords in context.GeographicalKoordinates on postJoined.Id_GeographicalKoordinates
                              equals postKoords.Id_GeographicalKoordinates into floodPostKoord
                              from postKoordsJoined in floodPostKoord.DefaultIfEmpty()
                              join posts in context.SolarActivities on flood.Id_SolarActivity equals posts.Id_SolarActivity
                              into floodSolar
                              from solarJoined in floodSolar.DefaultIfEmpty()
                              select new
                              {
                                  Id_flood = flood.Id_Flood,
                                  NamePost = postJoined.NamePost,
                                  Koords = postKoordsJoined.KoordinateText,
                                  Date = flood.DateAndTimes,
                                  LongitudeDay = flood.LongitudeDay,
                                  Snow = flood.Snow,
                                  Rain = flood.Rain,
                                  SnowRain = flood.SnowRain,
                                  AirHumidity = flood.AirHumidity,
                                  LevelSnow = flood.LevelSnow,
                                  HardnessSnow = flood.HardnessSnow,
                                  TemperatureDay = flood.TemperatureDay,
                                  TemperatureNight = flood.TemperatureNight,
                                  LevelWater = flood.LevelWater,
                                  Id_SolarActivity = solarJoined.LevelSolar,
                                  TemperatureWater = flood.TemperatureWater,
                                  WarningFlood = flood.WarningFlood,
                                  LevelFreezingGround = flood.LevelFreezingGround,
                              };
            GridView2.DataSource = transaction.Select(y => y.NamePost).ToList(); //Результат колонка Ltnght с значениями 8,...
26 июл 18, 23:53    [21606544]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
//Результат колонка Ltnght с значениями 8,...
Стоп-стоп. Не вали в одну кучу что возвращает запрос и что показывает грид.

Vlad__i__mir
объединение было выстроено вроде верно, его тест показал
напиши
var qqq = transaction.ToList()
и посмотри в отладке, что получишь в qqq - это и будет тест объединения.
А как это отобразит грид - вопрос немножко другой
27 июл 18, 05:06    [21606670]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
Если я просто обращаюсь к этим полям, то мне выдаётся ссылка, а не нужный мне объект, который должен быть по идее по этой ссылки.
вот это расшифровать не смог
27 июл 18, 05:10    [21606671]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir
ну т. е. показывало не "1", а то что соответствует данному ключу в связанной сущности - "Ваня").
кроме поля с кодом, если это про FK, надо в маппинг добавлять сам класс этого справочника по связи.
Тогда будет и код id_user и сам юзер в виде класса user.
27 июл 18, 07:30    [21606709]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Petro123
кроме поля с кодом, если это про FK, надо в маппинг добавлять сам класс этого справочника по связи.
Тогда будет и код id_user и сам юзер в виде класса user.
Ну ТС вроде написал:
Vlad__i__mir
которым в соответствие ставятся 2 виртуальных поля в классе сущности EF
то есть ссылки на сущности у него есть (виртуальные поля).

Возможно, проблема с полями у него возникла та же самая, что и с джойнами. Вместо того, чтобы проверить результат запроса напрямую, он попытался отобразить его в гриде, увидел что-то не соответствующее его ожиданиям и начал усложнять себе жизнь
27 июл 18, 08:00    [21606749]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Shocker.Pro,
Фиг знает.
Я не понял ваще зачем эта простыня sql.
Навигация Сущность.СвязаннаяСщность.Поле
Должна работать.
27 июл 18, 08:35    [21606800]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
flood.Id_Post equals posts.Id_Post
Учитывая, что имена свойств заданы не по соглашениям, фиг знает, что он там в модели наваял, в общем, нужно смотреть модель и запрос, который он сделал, а также знать подход (CF, DF, MF) и версию EF, маловато данных, короче. Пусть сначала разберется с джойнами, раз уже сделал их.
27 июл 18, 09:01    [21606885]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Shocker.Pro, о, а если просто вот так прописать

var joinPost= transaction.ToList();
dataGridView2.DataSource = joinPost;


то всё нормально он формирует и отображает.

Почему же тогда после применения Select() такое получается?

Сама сущность:
[Table("Flood")]
    public partial class Flood
    {
        [Key]
        public int Id_Flood { get; set; }

        public int Id_Post { get; set; }

        public DateTime DateAndTimes { get; set; }

        public decimal? LongitudeDay { get; set; }

        public decimal? Snow { get; set; }

        public decimal? Rain { get; set; }

        public decimal? SnowRain { get; set; }

        public decimal? AirHumidity { get; set; }
        public decimal? LevelSnow { get; set; }

        public decimal? HardnessSnow { get; set; }

        public int TemperatureDay { get; set; }

        public int TemperatureNight { get; set; }

        public decimal? LevelWater { get; set; }

        public int? Id_SolarActivity { get; set; }

        public int? TemperatureWater { get; set; }

        public int WarningFlood { get; set; }

        public decimal? LevelFreezingGround { get; set; }

        public virtual Post Post { get; set; }

        public virtual SolarActivity SolarActivity { get; set; }
    }
27 июл 18, 16:05    [21608928]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123,
автор
Я не понял ваще зачем эта простыня sql.
Навигация Сущность.СвязаннаяСщность.Поле
Должна работать.


Я тоже очень хотел так, но у меня опять отображался этот Lenght. Теперь я проверил и увидел, что он верно формирует List, а отображает не верно.

Как мне из сформированного списка выбрать сразу несколько нужных полей запросом Select()?

Я пытался вот так, но это не верно:

BindingSource bind = new BindingSource();
            var joinPost = FloodService.GetFloodEf().ToList().Select(y => { y.Post.NamePost; y.SolarActivity.LevelSolar});//Неверно. Как 
                                                                                                                                                       //выбрать сразу несколько полей?
            bind.DataSource = joinPost;
            dataGridView2.AutoGenerateColumns = true;
            dataGridView2.DataSource = bind;

GetFloodEf() - метод возвращающий List объектов:
class FloodService
    {
        public static List<Flood> GetFloodEf()
        {
            var context = new ModelDatabaseFastWaterContex();
            IQueryable<Flood> query = context.Floods; 
            List<Flood> listFloods = query.ToList();
            return listFloods;
        }
    }
27 июл 18, 16:34    [21609011]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir
GetFloodEf() - метод возвращающий List объектов:
class FloodService
    {
        public static List<Flood> GetFloodEf()
        {
            var context = new ModelDatabaseFastWaterContex();
            IQueryable<Flood> query = context.Floods; 
            List<Flood> listFloods = query.ToList();
            return listFloods;
        }
    }

Не понял.
Это всё равно одной строке
context.Floods.ToList();
?
27 июл 18, 16:38    [21609017]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir
Сама сущность:
сделай сущность из двух полей.
Остальное выкинь и покажи проблему.
27 июл 18, 16:41    [21609033]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123, Выгружает всё верно - здесь проблем нет, в сущности проблем тоже нет. Проблемы выбрать из выгруженного списка только нужные поля, а не все подряд. Я хотел сделать это с помощью Select(), но не знаю как прописать чтобы он выбирал больше 1-го поля.
27 июл 18, 17:41    [21609210]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123,
автор
Не понял.
Это всё равно одной строке
context.Floods.ToList();
?


Не суть. Работает верно.
27 июл 18, 17:42    [21609212]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Shocker.Pro,
Возможно, проблема с полями у него возникла та же самая, что и с джойнами. Вместо того, чтобы проверить результат запроса напрямую, он попытался отобразить его в гриде, увидел что-то не соответствующее его ожиданиям и начал усложнять себе жизнь


Вот это верно.
27 июл 18, 17:46    [21609218]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir,

Т.е. топик решён?
Суть то скажи).
27 июл 18, 18:35    [21609287]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123,
автор
Т.е. топик решён?
Суть то скажи).


Ну не совсем решён - частично.

Осталась разобраться почему он не верно отображает сформированный List объектов после применения Select().

И немного другая, но смежная проблема: как отобрать несколько конкретных полей для отображения, а не все?
27 июл 18, 19:41    [21609394]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir
Осталась разобраться почему он не верно отображает сформированный List объектов после применения Select().

Значит опять по кругу.
МИНИМАЛЬНЫЙ код и пример проблемы.
27 июл 18, 19:52    [21609419]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123,
Вот так вот всё отображается нормально:
var joinPost= transaction.ToList();
dataGridView2.DataSource = joinPost;

а вот так вместо значения свойства выводит колонку Lenght
GridView2.DataSource = transaction.Select(y => y.NamePost).ToList(); //Результат колонка Ltnght с значениями 8,...


Код формирования списка объектов:
var context = new ModelDatabaseFastWaterContex();
            var transaction = from flood in context.Floods
                              join posts in context.Posts on flood.Id_Post equals posts.Id_Post into floodPost
                              from postJoined in floodPost.DefaultIfEmpty()
                              join postKoords in context.GeographicalKoordinates on postJoined.Id_GeographicalKoordinates
                              equals postKoords.Id_GeographicalKoordinates into floodPostKoord
                              from postKoordsJoined in floodPostKoord.DefaultIfEmpty()
                              join posts in context.SolarActivities on flood.Id_SolarActivity equals posts.Id_SolarActivity
                              into floodSolar
                              from solarJoined in floodSolar.DefaultIfEmpty()
                              select new
                              {
                                  Id_flood = flood.Id_Flood,
                                  NamePost = postJoined.NamePost,
                                  Koords = postKoordsJoined.KoordinateText,
                                  Date = flood.DateAndTimes,
                                  LongitudeDay = flood.LongitudeDay,
                                  Snow = flood.Snow,
                                  Rain = flood.Rain,
                                  SnowRain = flood.SnowRain,
                                  AirHumidity = flood.AirHumidity,
                                  LevelSnow = flood.LevelSnow,
                                  HardnessSnow = flood.HardnessSnow,
                                  TemperatureDay = flood.TemperatureDay,
                                  TemperatureNight = flood.TemperatureNight,
                                  LevelWater = flood.LevelWater,
                                  Id_SolarActivity = solarJoined.LevelSolar,
                                  TemperatureWater = flood.TemperatureWater,
                                  WarningFlood = flood.WarningFlood,
                                  LevelFreezingGround = flood.LevelFreezingGround,
                              };
            GridView2.DataSource = transaction.Select(y => y.NamePost).ToList(); //Результат колонка Ltnght с значениями 8,..

Сама сущность:
[Table("Flood")]
    public partial class Flood
    {
        [Key]
        public int Id_Flood { get; set; }

        public int Id_Post { get; set; }

        public DateTime DateAndTimes { get; set; }

        public decimal? LongitudeDay { get; set; }

        public decimal? Snow { get; set; }

        public decimal? Rain { get; set; }

        public decimal? SnowRain { get; set; }

        public decimal? AirHumidity { get; set; }
        public decimal? LevelSnow { get; set; }

        public decimal? HardnessSnow { get; set; }

        public int TemperatureDay { get; set; }

        public int TemperatureNight { get; set; }

        public decimal? LevelWater { get; set; }

        public int? Id_SolarActivity { get; set; }

        public int? TemperatureWater { get; set; }

        public int WarningFlood { get; set; }

        public decimal? LevelFreezingGround { get; set; }

        public virtual Post Post { get; set; }

        public virtual SolarActivity SolarActivity { get; set; }
    }
27 июл 18, 21:09    [21609482]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35741
Vlad__i__mir,
Ты читаешь что я тебе писал?
Упрощай запрос до минимума полей.
Упрощай сущность до одного двух полей.
Или скопипастил где запрос?
...
Это если не рабочий запрос.
Где твой вопрос с вопросительным знаком?
..
Это работа программиста, без всякого грида вывести в консоль результаты запроса и отлаживать его.
Начиная с одной колонки id транзакции.
После этого добавляя колонки и уточняя результат.
....
Где скрин грида или того что выводится?
Работай!
Удачи!
28 июл 18, 10:37    [21610130]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Petro123,
автор
Это если не рабочий запрос.
Где твой вопрос с вопросительным знаком?


Я же вроде понятно написал:
автор
Вот так вот всё отображается нормально:
var joinPost= transaction.ToList();
dataGridView2.DataSource = joinPost;

а вот так вместо значения свойства выводит колонку Lenght
GridView2.DataSource = transaction.Select(y => y.NamePost).ToList(); //Результат колонка Ltnght с значениями 8,...



В этом и есть проблема.

Petro123
Ты читаешь что я тебе писал?
Упрощай запрос до минимума полей.
Упрощай сущность до одного двух полей.
Или скопипастил где запрос?

Нет смысла упрощать до 1-го - 2-х полей, т.к. у меня задача отобразить навигационные поля, у меня их уже 2-а. И потом, уже писал, что если не применять команду Select(), то всё нормально отображается проблема возникает уже тогда, когда я хочу отобрать только нужные поля из всех.
Вот урезанный насколько это возможно пример моей задачи:
[Table("Flood")]
    public partial class Flood
    {
        [Key]
        public int Id_Flood { get; set; }

        public int Id_Post { get; set; }
  
        public virtual Post Post { get; set; }

        public virtual SolarActivity SolarActivity { get; set; }
    }
public static List<Flood> GetFloodEf()
        {
            var context = new ModelDatabaseFastWaterContex(); 
            IQueryable<Flood> query = context.Floods; 
            List<Flood> listFloods = query.ToList();
            return listFloods;
        }

[Table("Post")]
    public partial class Post
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public Post()
        {
            Floods = new HashSet<Flood>();
        }

        [Key]
        public int Id_Post { get; set; }

        [Required]
        [StringLength(50)]
        public string NamePost { get; set; }

        public int? Id_GeographicalKoordinates { get; set; }
       
        [StringLength(50)]
       
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<Flood> Floods { get; set; }
        public virtual GeographicalKoordinate GeographicalKoordinate { get; set; }
        }

public partial class GeographicalKoordinate
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
        public GeographicalKoordinate()
        {
            Posts = new HashSet<Post>();
        }

        [Key]
        public int Id_GeographicalKoordinates { get; set; }

        [Required]
        public DbGeography Koordinate { get; set; }
        
        [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
        public string KoordinateText { get; set; }
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
        public virtual ICollection<Post> Posts { get; set; }
    }

var context = new ModelDatabaseFastWaterContex();
            var transaction = from flood in context.Floods
                              join posts in context.Posts on flood.Id_Post equals posts.Id_Post into floodPost
                              from postJoined in floodPost.DefaultIfEmpty()
                              join postKoords in context.GeographicalKoordinates on postJoined.Id_GeographicalKoordinates
                              equals postKoords.Id_GeographicalKoordinates into floodPostKoord
                              from postKoordsJoined in floodPostKoord.DefaultIfEmpty()
                              join posts in context.SolarActivities on flood.Id_SolarActivity equals posts.Id_SolarActivity
                              into floodSolar
                              from solarJoined in floodSolar.DefaultIfEmpty()
                              select new
                              {
                                  Id_flood = flood.Id_Flood,
                                  NamePost = postJoined.NamePost,
                                  Koords = postKoordsJoined.KoordinateText,
                                  Id_SolarActivity = solarJoined.LevelSolar,
                              };
            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]


К сообщению приложен файл. Размер - 82Kb
28 июл 18, 16:41    [21610620]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
public string NamePost { get; set; }
Ну? а какого эффекта ты хочешь добиться? Ты пытаешься отобразить List<string> в гриде. Соответственно каждая строка - это один стринг. Грид пытается построить набор столбцов на базе свойств типа string. Нашел у него свойство Length и отобразил его значение. Других свойств не нашел.
28 июл 18, 17:26    [21610685]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Shocker.Pro
Vlad__i__mir
public string NamePost { get; set; }

Ну? а какого эффекта ты хочешь добиться? Ты пытаешься отобразить List<string> в гриде. Соответственно каждая строка - это один стринг. Грид пытается построить набор столбцов на базе свойств типа string. Нашел у него свойство Length и отобразил его значение. Других свойств не нашел.


Причем тут вообще select и все эти простыни запросов. Не можешь уложить в голове и отладить картину в целом - отлаживай кусками. Я же сказал. Запрос - это одно, отображение в гриде - это другое. Создаешь тестовый List<string> из трех строк и отлаживаешь его отображение в гриде. И этот вопрос к тематике этого подфорума не имеет отношения.

Тебе для того даден SOLID, чтобы ты не пытался в один и тот же класс засунуть отображение в гриде и запрос в БД.
28 июл 18, 17:29    [21610687]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Shocker.Pro,

автор
Тебе для того даден SOLID, чтобы ты не пытался в один и тот же класс засунуть отображение в гриде и запрос в БД.


У меня это в разных классах: сущность в одном, запрос в другом, а ГридВью в третьем.

автор
Причем тут вообще select и все эти простыни запросов. Не можешь уложить в голове и отладить картину в целом - отлаживай кусками. Я же сказал. Запрос - это одно, отображение в гриде - это другое.


Это я понял, написал об этом ранее.

автор
Создаешь тестовый List<string> из трех строк и отлаживаешь его отображение в гриде. И этот вопрос к тематике этого подфорума не имеет отношения.


А вот как отладить не понятно, но как было сказано это в другой подфорум.

Спасибо!
28 июл 18, 18:52    [21610818]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
У меня это в разных классах: сущность в одном, запрос в другом, а ГридВью в третьем.
Если бы это было так, то на входе в класс отображения был бы List<string> и ты не задавался бы вопросом, правильно или неправильно у тебя работает join. Тебе бы компилятор не дал запутаться. А так как ты пытаешься присвоить источнику данных грида результат запроса напрямую, не понимая, какой он имеет тип, я делаю вывод, что у тебя все в одном классе, и не надо рассказывать сказки
28 июл 18, 19:46    [21610935]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Shocker.Pro, для проверки работоспособности join поместил в класс формы, потому что, чтобы вернуть его из метода другого класса понадобилось бы прописывать новый класс для хранения результатов joina, т.к. результат join - var, записывать его туда, а мне нужно было пока просто убедиться, что это работает. А всё остальное - сущность, контекст, метод выгрузки сущности, все в отдельных классах
28 июл 18, 19:54    [21610950]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 19553
Vlad__i__mir
бы прописывать новый класс для хранения результатов joina
вот именно так и надо было сделать. Студия умеет генерировать обычный класс из анонимного автоматически. Тогда ты бы сразу понял, что у тебя List<string> и решилось бы все гораздо быстрее
28 июл 18, 20:08    [21610981]     Ответить | Цитировать Сообщить модератору
 Re: Создание объединения (join) в EF для доступа к полям связанных сущностей  [new]
Vlad__i__mir
Member

Откуда:
Сообщений: 140
Shocker.Pro,
автор
вот именно так и надо было сделать. Студия умеет генерировать обычный класс из анонимного автоматически. Тогда ты бы сразу понял, что у тебя List<string> и решилось бы все гораздо быстрее


Не знал, что VS так может сейчас в интернете нашёл как это делается и сделал
28 июл 18, 20:49    [21611032]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить