我有一个带有种子方法的DbInitializer类,该类正在将一些初始数据播种到我的数据库中,现在我将其他数据添加到播种中,并且此数据创建了狗和颜色之间的关系表。我正在尝试做以下编译器抱怨的事情。
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 =
}
};
}
答案 0 :(得分:0)
找到了解决我问题的方法。尝试从基于相关对象的Id属性分配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()
}
};