通过实例化DbContext,对数据库进行插入,EFCore提供了四个接口插入:
context.Leagues.Add();
context.Leagues.AddRange();
context.Add();
context.AddRange();
调用Add和AddRange方法后并不会立即更新数据库,执行SaveChange()才会将数据插入到数据库中
using var context = new ContextDemo();//C#8语法,当前方法结束后释放资源
//添加一条数据
var league1 = new League
{
Name = "LeagueA"
};
context.Leagues.Add(league1);
//AddRange添加多条数据
var LeagueList = new List<League>
{
new League{Name="LeagueB"},
new League{Country="Japan",Name="LeagueC"}
};
context.Leagues.AddRange(LeagueList);
var league2 = new League { Name = "leagueD", Country = "UK" };
var lealgue3 = new League { Name = "leagueE", Country = "Australia" };
var leagueA = context.Leagues.FirstOrDefault(e => e.Name == "LeaguA");
var club1 = new Club
{
Name = "Club1",
City = "Shanghai",
DateOfEstablishment = new DateTime(1988, 12, 16),
League = leagueA
};
var club2 = new Club
{
Name = "Club2",
City = "Shanghai",
DateOfEstablishment = new DateTime(1988, 12, 16),
League = leagueA,
Players=new List<Player>
{
new Player{Name="Henry",DateOfBirth=new DateTime(1993,01,25) },
new Player{Name="Jack",DateOfBirth=new DateTime(1991,01,25) }
}
};
//添加不同类型的实体
context.AddRange(club1, league2, lealgue3, club2);
var count = context.SaveChanges();//返回修改的记录数
Console.WriteLine(count);