Как установить свойство Id с помощью linq на основе идентификатора, установленного в предыдущем объекте в EF DbInitializer - PullRequest
0 голосов
/ 05 мая 2019

У меня есть класс DbInitializer с методом seed, который заполняет некоторые исходные данные в моей базе данных, и теперь я добавляю дополнительные данные к заполнению, и эти данные создают таблицу отношений между собакой и цветом. Я пытаюсь сделать что-то следующим образом, на что жалуется компилятор.

      var breeds = new List<Breeds>()
        {
            new Breeds()
            {
                BreedId = Guid.NewGuid(),
                Name = "Belgian Malinois",
                AvgMinHeight = 22,
                AvgMaxHeight = 26,
                AvgMinWeight = 40,
                AvgMaxWeight = 80

            },
            new Breeds()
            {
                BreedId = Guid.NewGuid(),
                Name = "Dutch Shepherd",
                AvgMinHeight = 21,
                AvgMaxHeight = 25,
                AvgMinWeight = 42,
                AvgMaxWeight = 75
            }
        }; //end

        if (!_context.Breeds.Any())
        {
            _context.Breeds.AddRange(breeds);
            _context.SaveChanges();
        }

       //Breed Color Relational Data Seeding
       if (!_context.BreedColors.Any())
        {
            var breedColors = new List<BreedColors>()
            {
                new BreedColors()
                {
                    Id = Guid.NewGuid(),
                    BreedId = breeds.Where(x=>x.Name=="Dutch Shepherd").Single();
                    //ColorId = 
                }
            };

        }

1 Ответ

0 голосов
/ 05 мая 2019

Нашел решение моей проблемы.Следующий синтаксис работает при попытке назначить идентификатор из свойства Id связанного объекта на основе.

        var breedColors = new List<BreedColors>()
        {
            new BreedColors()
            {
                Id = Guid.NewGuid(),
                BreedId = breeds.Where(x=> x.Name=="Dutch Shepherd").Select(x=> x.BreedId).Single(),
                ColorId = colors.Where(b=>b.Name == "Wolfgray & Black").Select(a => a.Id).Single()
            }
        };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...