EF,简单说将数据库的表生成实体类,每个结果都是实体类集(类型如IList<>,IQueryable<>),增删改查方法封装好了,直接操作,节省了去数据库工具写语句。
EF5.0后有了延时执行,其实就是IQueryable<>和SaveChange(),意思就是你大可以将语句分几段写,最后才一次生成。
EF是ORM框架(对象关系映射)的,在之前写的程序,我也经常自己去把数据库的表生成个实体类,方便开发,这框架更方便,封装好增删改查。
基于ADO.NET,会自动生成SQL语句,这个根据不同数据库而定,配合LINQ写语句会更方便,但简单的比较好,复杂的语句就要时常去比较(这个其实更累)
优点:
程序可以使用不同数据库,因为EF会根据不同数据库生成的语句;
可以不去数据库工具(API)去写语句;.
一切按实体类来执行,不用再去数据库找字段;(这个其实自己都会弄)
缺点:
高并发的程序(如实时聊天)不推荐用;
写LINQ复杂点查询语句(联表、多个子查询、条件配合)挺痛苦,而且要用工具查看生成的语句是否符合逻辑,也不可以不断调试(我觉得功能就是调试出来的,脑洞大开的人可以略过);
EF更换版本起来还真是坑,如果想将程序的EF从低版本升到高版本,高版本会少很多方法(看资料时就是明明写有SqlQueryByDynamic()),目前知道改变最大的点就是5.0