Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在C#和EF Core中播种多对多数据库_Sql_Database_Ef Core 2.0_Seeding - Fatal编程技术网

Sql 在C#和EF Core中播种多对多数据库

Sql 在C#和EF Core中播种多对多数据库,sql,database,ef-core-2.0,seeding,Sql,Database,Ef Core 2.0,Seeding,我想用EF Core为我的数据库设定种子,并为多对多关系设定连接表种子,但这不起作用 我有三种型号: public class Droid { public int DroidId { get; set; } public string DroidName { get; set; } } public class Colors { public int ColorID { get; set; } p

我想用EF Core为我的数据库设定种子,并为多对多关系设定连接表种子,但这不起作用

我有三种型号:

 public class Droid
    {
        public int DroidId { get; set; }
        public string DroidName { get; set; }
    }

  public class Colors
    {

        public int ColorID { get; set; }
        public string Color { get; set; }
    }

public class DroidColors
    {
        public int DroidColorID { get; set; }
        public int ColorID { get; set; }
        public int DroidID { get; set; }

    }
我从一开始就在数据库中植入种子。对droid表和颜色表进行种子设定工作正常,但droidcolor表仍然有效

 using (var context = new DBContext(serviceProvider.GetRequiredService<DbContextOptions<DBContext>>()))
            {
                if (context.Colors.Any())
                {
                    return;
                }


                var colors = new Color[]
                {

                    new Color{Color = "White"},
                    new Parameter{Color = "Black" },
                    new Parameter{Color = "Orange"},
                };

                foreach (Color c in colors)
                {
                    context.Colors.Add(c);
                }
                context.SaveChanges();

                

                if (context.Droids.Any())
                {
                    return;
                }

                var droids = new Droid[]
                {

                new Droid{DroidName = "R2-D2"},
                new Droid{DroidName = "C-3PO"},
                new Droid{DroidName = "BB-8"},
                };

                foreach (Droid d in droids)
                {
                    context.Droids.Add(d);
                }
                context.SaveChanges();


                

                if (context.DroidColors.Any())
                {
                    return;
                }

                var droidcolors = new DroidColor[]
               {
                 new DroidColor{DroidID = 1, ColorID = 1},
                 new DroidColor{DroidID = 1, ColorID = 2},
                 new DroidColor{DroidID = 2, ColorID = 1},
                 new DroidColor{DroidID = 2, ColorID = 2},
                 new DroidColor{DroidID = 2, ColorID = 3},
                 new DroidColor{DroidID = 3, ColorID = 1},
                 new DroidColor{DroidID = 3, ColorID = 3}
                
               };

 foreach (DroidColor DC in droidcolors)
                {
                    context.Droids.Add(DC);
                }
                context.SaveChanges();
使用(var context=new DBContext(serviceProvider.GetRequiredService())
{
if(context.Colors.Any())
{
返回;
}
var colors=新颜色[]
{
新颜色{Color=“White”},
新参数{Color=“Black”},
新参数{Color=“Orange”},
};
foreach(颜色中的c色)
{
上下文。颜色。添加(c);
}
SaveChanges();
if(context.Droids.Any())
{
返回;
}
var机器人=新机器人[]
{
新机器人{DroidName=“R2-D2”},
新机器人{DroidName=“C-3PO”},
新机器人{DroidName=“BB-8”},
};
foreach(机器人中的机器人d)
{
上下文.Droids.Add(d);
}
SaveChanges();
if(context.DroidColors.Any())
{
返回;
}
var droidcolors=新DroidColor[]
{
新DroidColor{DroidID=1,ColorID=1},
新的DroidColor{DroidID=1,ColorID=2},
新DroidColor{DroidID=2,ColorID=1},
新DroidColor{DroidID=2,ColorID=2},
新DroidColor{DroidID=2,ColorID=3},
新DroidColor{DroidID=3,ColorID=1},
新DroidColor{DroidID=3,ColorID=3}
};
foreach(DroidColor中的DroidColor DC)
{
context.Droids.Add(DC);
}
SaveChanges();
我遗漏了什么?EF Core似乎忽略了我的第三个数据数组,在按照预期处理了第一个和第二个数据数组之后