我想知道Entity FrameWork框架在读取数据库是全部读取放在内存中么?
EF实际上就是对ADO.NET的扩展, 叫扩展也不恰当, EF的底层实现就是ADO.NET 这ADO.NET读出来的数据他就是保存在托管堆中, 这个托管堆就是包含在C#进程的虚拟内存里
这个我了解,ado.net虽然都是保存在托管堆中,但是你可以用sql控制读取数据量的多少啊,我想问的意思是ef在生成数据库实体以后,是不是在运行的时候把数据库某一个表中的所有数据读取出来放到内存里?
@奇民: 不是, EF是生成对应的sql来操作数据库
比如:db.User.ToList() 它对生成select id,x1,x2,x3,x4 from User
db.User.Where(m=>m.id==1) select id,x1,x2,x3,x4 from User where id==1
哪里会全部读出来喃
EF查询的时候,需要将LINQ查询条件解析表达式树生成SQL语句,所以是否全部放到内存里取决于EF动态生成的最终真实执行的SQL语句。
虽然没选你但是谢谢你
不是
虽然没选你但是谢谢你
200%不是
虽然没选你但是谢谢你