在 ef 中执行 DbContext.Table.AddRange(Enitites).ToList() 会发生什么

在 ef 中执行 DbContext.Table.AddRange(Enitites).ToList() 会发生什么

昨天和朋友摸鱼,无意之间聊到了执行 DbContext.Table.AddRange(Enitites).ToList() 会不会把数据库中的内容给读出来...

但其实并不会,因为 AddRange(Entities) 的返回值...也是Entities XD

表 dbo.man

IdName
1张三
2李四

code

using (context dbc = new context())
{
    List<man> listMan = new List<man>
    {
        new man{Name = "王五"},
        new man{Name = "赵六"}
    };

    var re = dbc.Man.AddRange(listMan).ToList(); //这里会发生什么

    //dbc.SaveChange();

    re.ForEach(p => Console.WriteLine("{0} | {1}", p.Id, p.Name));
    // output
    // 0 | 王五
    // 0 | 赵六
}

结论

啥事没有,AddRange(Entities).ToList() 返回的只是 Entites 本身。

另外通过 SQL Server Profiler ,我们也可以看到,并没有去数据库中获取 dbo.man 表全部记录。

当然,没有执行 SaveChange() 也不会往表中新增数据。

SQL Server Profiler

转载于:https://www.cnblogs.com/yeshiyu/p/7220416.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值