powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF 7 брать данные из таблицы связанной по внешнему ключу
8 сообщений из 8, страница 1 из 1
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186369
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!
В приложении использовал .EDMX и прекрасно работал, но потом появилась нужда перевода приложения на asp.net 5 и соответственно использовать code first c которым ни когда не работал.

у меня ест две таблицы dbo.Shopping и ссылающаяся на нее dbo.Photo по внешнему ключу.
раньше я делал так
Код: c#
1.
 List<Shopping> data = lookDB.Shopping.Where(x => x.Photos.Count > 0 && x.IsActive == true).OrderByDescending(x => x.Id).Take(9).ToList();



и потом брал объект data и мог обращаться к списку объектов Photo

Код: c#
1.
var listPhoto = data.Photo.ToList();



После того как перешел на code first, я не могу получить объекты dbo.Photo старым способом....
Подскажите как это делается в code first
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186374
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
IQueryable<Shopping> data = lookDB.Shopping.Where(x => x.Photos.Count > 0 && x.IsActive == true).OrderByDescending(x => x.Id).Take(9);
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186375
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, стоп, откуда в твоем примере у List<Shopping> возьмется свойство Photo?
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186378
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

у меня есть две таблицы dbo.Shopping и ссылающаяся на нее dbo.Photo по внешнему ключу.
code first уже замаплена эта связь и свойство Photo есть

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public partial class Shopping
    {
        public Shopping()
        {
            Photos = new HashSet<Photos>();
        }

        public int Id { get; set; }
        public string Date { get; set; }

        public virtual ICollection<Photos> Photos { get; set; }
}

public partial class Photos
    {
        public Photos()
        {
            PhotosChild = new HashSet<PhotosChild>();
        }

        public int Id { get; set; }
        public string Comment { get; set; }
        public string Data { get; set; }

    }
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186383
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, в приведенном коде нет ни одного свойства Photo, есть Photos у Shopping.
Во-вторых, это не отменяет вопроса, откуда возьмется свойство Photo у List<> .
Это не будет работать и в edmx.
Опиши словами, что ты хочешь получить.
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186391
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Да ошибся, Photos !

Есть таблица таблица dbo.Shopping
на нее по внешнему ключу ссылается dbo.Photo

то есть к одному объекту dbo.Shopping есть много объектов dbo.Photo

1- выбрав несколько объектов dbo.Shopping
Код: c#
1.
List<Shopping> data = lookDB.Shopping.Where(x => x.Photos.Count > 0 && x.IsActive == true).OrderByDescending(x => x.Id).Take(9).ToList();



2- я хочу получить список объектов dbo.Photo на каждый выбранный объект dbo.Shopping
раньше я делал так
foreach(var item in data)
{
var listPhoto = item.Photos.ToList();
}
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186396
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yardieраньше я делал так
foreach(var item in data)
{
var listPhoto = item.Photos.ToList();
}это ближе к истине. Варианта два - либо 18900194 , либо
Код: c#
1.
List<Shopping> data = lookDB.Shopping.Where(x => x.Photos.Count > 0 && x.IsActive == true).OrderByDescending(x => x.Id).Take(9).Include(n => n.Photos).ToList();



Но лучше вообще не тащить сущности дальше в бизнес логику, а выбрать только нужные данные с помощью проекций. Опять же, возможно нужный набор данных можно получить одним запросом с помощью .SelectMany без всякого цикла.
...
Рейтинг: 0 / 0
EF 7 брать данные из таблицы связанной по внешнему ключу
    #39186397
Фотография yardie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

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


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