首页 新闻 会员 周边

.NET 环境下 数据访问层应该怎么做才合适?

-2
悬赏园豆:20 [已解决问题] 解决于 2014-08-15 17:20

数据库用的是SQL Server 2008R2,数据库的数据以怎样的方式存取才更划算?

1.利于开发人员开发

2.数据存取速度不能太慢。

曾考虑过使用EF最终没有采用 ,

原因是:这边的业务复杂度太高了。EF用上,页面会等很久才有反应。

 

不知道各位大侠们 .NET环境下,都在怎么实现 数据存取?除了直接调用 ADO.NET(纯sql或者存储过程实现)和用EF外,你们还能用什么方式实现呢 ?

Vancen的主页 Vancen | 初学一级 | 园豆:80
提问于:2014-08-15 10:19
< >
分享
最佳答案
1

“这边的业务复杂度太高了。”

这句话说了等于没有说。

对于你们的项目或者业务环境,其实你可以简单描述一下,比如,每年需要30个程序员工作,或者项目金额大约1千万之类,不用非常准确,但起码给人大概的范围。

如果你要纯粹的数据性能快,一定是ADO.NET,

作为一个项目来说,性能不单纯是数据存取这块,他的结构可能是

UI:500MS

APP LAYER:100MS

Data Access: 10MS

在这样的情况下,使用EF做Data Access,可能变成这样

Data Access: 80MS

对于实际的项目,或者说大部份的项目(1个亿以下吧),这个可以说是小的影响。

然后选择EF或是LINQ TO SQL,会带来其他的好处,这也是ORM之所以能盛行的原因。

 

而且大项目的优化,通常不是在这儿优化,可能是使用SSD硬盘,使用数据缓存等。

这样很多环境下是不需要访问数据库的。

收获园豆:20
爱编程的大叔 | 高人七级 |园豆:30839 | 2014-08-15 10:46
其他回答(5)
0

Linq to Sql

骑着蜗牛耍流氓 | 园豆:135 (初学一级) | 2014-08-15 10:21
1

 上面的-1是谁干的!!,

如果你用EF查询很慢,说明你用的方法有问题.我一直认为EF还是可以用的,

虽然我不用``

吴瑞祥 | 园豆:29449 (高人七级) | 2014-08-15 10:26

EF 是不错的,只不过EF用起来还是费劲,

这边EF已经用了1年多了,但是感觉还是写起来太复杂,底层的扩展也不好(用的是4.+的版本,没有升级)。

 

支持(0) 反对(0) Vancen | 园豆:80 (初学一级) | 2014-08-15 10:30

@Vancen: ORM就是那一套东西,用什么都差不多,我一般都是直接用DAPPER

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-08-15 10:35

@Vancen: 

EF肯定是比较费劲的,相对于LINQ TO SQL ,EF重了许多,他更多考虑的是可移植性。

相对于楼上,我更多使用的是LINQ TO SQL。

关键是问题还是你的项目重到什么程度,不同的程度是需要使用不同的技术的,没有办法一概而论。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2014-08-15 10:49

@爱编程的大叔: 话说,我也比较喜欢用L2S。够纯~

支持(0) 反对(0) 幻天芒 | 园豆:37175 (高人七级) | 2014-08-15 11:05

@爱编程的大叔:  项目利润不高,也是比较小的项目,没钱赚的。

我就是随便考虑下,看能不能做的更好!

支持(0) 反对(0) Vancen | 园豆:80 (初学一级) | 2014-08-15 17:19
0

看你具体的业务需求,如果是单表维护较多,那么采用ORM方式比较合适。EF、L2S等。

如果是复杂的查询类需求,那么就需要能够灵活控制sql的数据访问框架,如ibatis,dapper等。

幻天芒 | 园豆:37175 (高人七级) | 2014-08-15 10:36
0

使用 Moon.Orm。

Launcher | 园豆:45045 (高人七级) | 2014-08-15 10:51
0

怎么样算合适是根据应用场景来的。

Firen | 园豆:5385 (大侠五级) | 2014-08-15 12:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册