在 ef 中执行 DbContext.Table.AddRange(Enitites).ToList()
会发生什么
昨天和朋友摸鱼,无意之间聊到了执行 DbContext.Table.AddRange(Enitites).ToList()
会不会把数据库中的内容给读出来...
但其实并不会,因为 AddRange(Entities)
的返回值...也是Entities
XD
表 dbo.man
Id | Name |
---|---|
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() 也不会往表中新增数据。