当前位置:编程学习 > C#/ASP.NET >>

写给新手:零起点学习数据库访问,使用刚刚发布的 EF 4.1。Entity Framework 4.1 EFCodeFirst 入门教程

--------------------编程问答-------------------- --------------------编程问答-------------------- EF最大的麻烦就是联合查询实现困难,它只是体现数据库的某个表,要多表的信息还得先在数据库中建视图,使用不便,还是直接SqlCommand用起来方便,除非你想做大项目,否则用EF是给自己找麻烦。 --------------------编程问答-------------------- 顶!

引用 2 楼 qldsrx 的回复:
EF最大的麻烦就是联合查询实现困难,它只是体现数据库的某个表,要多表的信息还得先在数据库中建视图,使用不便,还是直接SqlCommand用起来方便,除非你想做大项目,否则用EF是给自己找麻烦。


复杂的join都没什么问题。。。为什么要建视图?
--------------------编程问答--------------------
引用 3 楼 fangxinggood 的回复:
复杂的join都没什么问题。。。为什么要建视图?

请问在EF中使用join,那么数据是怎么过滤的,是join之后过滤,还是join之前过滤。我希望join之后过滤,那么EF是不是会将表中所有数据先加载到内存中,然后join,最后执行过滤?如果是百万级以上的表,这样是不是太慢了,几乎不现实的做法。而我要是用SQL语句实现,过滤是在数据库中执行,效率明显提高,因为数据库就是用来处理数据库,在程序中执行数据库的部分功能就是降低效率,不可能有数据库中执行过滤筛选速度快。 --------------------编程问答-------------------- 坐等观天。 --------------------编程问答--------------------
引用 4 楼 qldsrx 的回复:
引用 3 楼 fangxinggood 的回复:
复杂的join都没什么问题。。。为什么要建视图?

请问在EF中使用join,那么数据是怎么过滤的,是join之后过滤,还是join之前过滤。我希望join之后过滤,那么EF是不是会将表中所有数据先加载到内存中,然后join,最后执行过滤?如果是百万级以上的表,这样是不是太慢了,几乎不现实的做法。而我要是用SQL语句实现,过滤是在数据库中执行……

呵呵,不过按照你的说法,应该是小项目适用,而不是大项目适用了。。。
@_@ linq2Entities 当然是生成 sql 查的。不是加载到内存里的。linq2sql 开始就是延迟加载嘛。

http://www.cnblogs.com/dudu/archive/2011/03/31/2001300.html --------------------编程问答-------------------- 我曾经对LINQ TO SQL感兴趣过,后来发现自动生存的SQL代码中,无法很好的处理Distinct语句,更不用说是用CASE WHEN了,于是我开始抛弃类似的SQL实体。不过那个CLR函数倒是很不错的改进,虽然比起Oracle晚了好几年,不过也算是有了这个功能了,写个自定义聚合函数让我查询效率倍增。 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 那么EF是不是会将表中所有数据先加载到内存中,然后join,最后执行过滤?

不会那么做的,是生成相关SQL ,将执行后的结果集 返回 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 楼主辛苦了。

这里再帮lz贴张图,让更多人了解下EF的整体。
Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。
Entity Framework的主要特点:
1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2);
2. 强劲的映射引擎,能很好地支持存储过程;
3. 提供Visual Studio集成工具,进行可视化操作;
4. 能够与ASP.NET, WPF, WCF, WCF Data Services进行很好的集成。


目前使用EF的大型网站,比如:博客园
还有最大的编程网站:StackOverflow 使用的是 linq2Sql

btw: 相信没有完美的ORM,目前主流的NH,iBatis等等都是如此。
EF也不例外,运到复杂的关联查询的时候,用linq写那是非常困难的。就算能写出来,维护性和可读性也不及直接写sql。
--------------------编程问答-------------------- --------------------编程问答-------------------- 待续......... --------------------编程问答-------------------- 很受用啊 ,呵呵 --------------------编程问答-------------------- --------------------编程问答-------------------- 导航系统GDOP计算  --------------------编程问答-------------------- --------------------编程问答-------------------- 下笨方法吧,这个弄不好只有笨方法了,看数据规模应该可以弄 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 好~~~~~~~~~ --------------------编程问答-------------------- --------------------编程问答-------------------- 先顶一下哈 --------------------编程问答-------------------- 话说 现在搞软件的  不会数据库的不多吧- - 写2个SQL语句还是会的吧- - --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 感觉ef的code first 也好 model first也好 一改数据结构就悲剧了~~~
测试数据啊 测试数据啊~~ --------------------编程问答-------------------- 写的非常详细,好 --------------------编程问答-------------------- 写的不错,赞 --------------------编程问答-------------------- 我也没用过,以后好好学吧 --------------------编程问答-------------------- --------------------编程问答-------------------- 看了,谢谢楼主了 --------------------编程问答-------------------- 以后程序员没活路了…… --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- EF最大的麻烦就是联合查询实现困难,它只是体现数据库的某个表,要多表的信息还得先在数据库中建视图,使用不便,还是直接SqlCommand用起来方便,除非你想做大项目,否则用EF是给自己找麻烦。 --------------------编程问答-------------------- --------------------编程问答-------------------- 一看就是高科技啊 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 好啊~很不错 --------------------编程问答-------------------- --------------------编程问答-------------------- 对我 太有用了 --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 自己也曾经搞了一个框架“PDF.NET数据开发框架”,现在看EF这么强,也得学习一下了,看看是否比自己的更好用。
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 微软这个坏蛋,又在弱化我们的编程能力了. --------------------编程问答-------------------- --------------------编程问答--------------------
引用 48 楼 pxj2005 的回复:
EF最大的麻烦就是联合查询实现困难,它只是体现数据库的某个表,要多表的信息还得先在数据库中建视图,使用不便,还是直接SqlCommand用起来方便,除非你想做大项目,否则用EF是给自己找麻烦。

ExecuteStoreCommand --------------------编程问答-------------------- 不了解的方面。标记回头看。支持caozhy下。 --------------------编程问答-------------------- 学习了   不错    --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 好东西,得好好学习下,正需要 --------------------编程问答-------------------- 做个记号先. --------------------编程问答--------------------    路过 ... --------------------编程问答-------------------- 好像不是很看好这个 --------------------编程问答-------------------- 谢谢分享,尊重楼主的劳动成果,回帖是种美德。 --------------------编程问答-------------------- Linq很好, 但Linq for SQL感觉不是太方便。 不是很灵活, 不如自己写 StoredProcedure 和 CustomAttributes . --------------------编程问答-------------------- 谢谢,楼主 --------------------编程问答-------------------- 谢谢分享 --------------------编程问答-------------------- 唉,觉得还是麻烦了,直接加对象实体不就行了,建表在影射成实体有些多次一举。有空在学习吧。。。。。 --------------------编程问答-------------------- 这个似乎绕圈子了 --------------------编程问答-------------------- 不知道做什么,只知道该做什么。 --------------------编程问答-------------------- ef出了这么个功能,才听说。 --------------------编程问答-------------------- --------------------编程问答-------------------- 貌似ef变得更强大了。 --------------------编程问答-------------------- 顶 ,不过找点茬
“用户有3个字段,用户名、密码、性别、所在城市” --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 程序员越来越简单,越来越不值钱了啊哈哈 --------------------编程问答-------------------- --------------------编程问答-------------------- 不管怎么样,多学一招是对的。。。 --------------------编程问答-------------------- EF的设计器不好用,修改好麻烦 --------------------编程问答-------------------- 呵呵 非哥来了
引用 15 楼 sandy945 的回复:
那么EF是不是会将表中所有数据先加载到内存中,然后join,最后执行过滤?

不会那么做的,是生成相关SQL ,将执行后的结果集 返回
--------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 不错。 --------------------编程问答-------------------- 谢谢,好好学学 --------------------编程问答-------------------- 100楼,翻个页吧。感谢分享。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,