有个 Web 接口需要基于 C#开发,Mysql 数据库,N 多张表,每张表 50+字段。
如果全部用手写的方式拼 sql,可能要死,所以考虑到 ORM。
搜了一下好像有 Dapper,但是同样也看到一些人建议什么 LINQ,因为对.Net 开发不熟,所以想问问都有哪些方案?
要求:
1 轻量化:不要依赖很重,装很多东西那种,dotNet 平台内置的最好,性能即使稍微低一点关系不大,只要稳定。
2 文档:不要求很高质量,起码能让人看懂。
3 生命力:尽量不要推荐几年前的方案(库),除非经过了多年考验。
1
wdoit9 2019-07-05 10:05:18 +08:00
EF?
|
2
tanranran 2019-07-05 10:07:23 +08:00
同求
我们公司是这样的, model 通过工具(每次新增和更改 model 都得跑一下)生成 partial 扩展类(里面是各种自动生成的增删改查 sql ) 每次增删改查的时候,都会自动从扩展类里面读取 sql 然后执行。 |
3
fengyunSmlie 2019-07-05 10:07:54 +08:00
EF
Dapper FreeSQL DOS.ORM 还有更多。。 轮子其实不少 |
4
MaxTan 2019-07-05 10:09:19 +08:00
EF Dapper NHibernate
|
5
LongMaoz 2019-07-05 10:12:47 +08:00
.NET 平台上的轮子还是挺多的,官方自带的 EF 用 linq 语法就挺好用
|
6
wangxiaoaer OP https://docs.microsoft.com/en-us/ef/ef6/
EF 是这个吧,看了下,觉得还不错,准备试一下。 另外,初步看了下好像 EF core 是新的替代品吧,有些功能还在开发中,我就选了 EF6,有没有问题? |
7
hihipp 2019-07-05 10:14:43 +08:00
Dapper 原则上不算一个 ORM。
内置就是 EF 了,如果是 .net core 环境,目前还是不太建议用 EF Core。 第三方可选 https://github.com/ServiceStack/ServiceStack.OrmLite,收费。 |
8
babedoll 2019-07-05 10:14:49 +08:00
EF 官方的 好用稳定,看你数据量大不大需不需要跨库分表了,如果不需要用 EF 是很舒适的。
|
9
catqi 2019-07-05 10:15:01 +08:00
想自己写 sql 就用 dapper,轻量级
|
10
Mithril 2019-07-05 10:27:22 +08:00 2
啥也不用想的自然是 EF 最方便,文档也是相当全。一般的需求只需要点几下鼠标生成对应的代码,全程不需要写 SQL,而且对 Linq 支持极好。缺点就是这框架为了让你可以不写 SQL,做的相当的复杂,你要学的东西很多很多,不然出了问题很难调试。但用 EF 的时候你需要注意就是它不是很推荐你去手动修改数据库,最好是直接写代码,直接用 EF 映射成数据库,不然会有各种问题。
Dapper 就简单很多了,你自己手写 SQL 进代码,查出来的东西直接映射成对象。 个人建议时如果你不是很熟悉 SQL,就用 EF。毕竟很多时候水平一般的码农写出来的那 SQL 还不如 EF 自动生成的。如果你的表关系非常复杂,会有各种关联更新查询删除啥的,也用 EF 吧,毕竟省得你去搞那个复杂的 SQL。如果你很熟悉 SQL,或者你的查询不会很复杂,那就用 Dapper。毕竟这框架需要你手写 SQL,不会自动生成,非常简单。因为简单,性能也很不错。 这里有个官方对比 https://entityframework.net/ef-vs-dapper |
11
mohoumk2 2019-07-05 10:37:12 +08:00 via Android
sqlsugar
|
12
dhssingle 2019-07-05 11:01:27 +08:00
EF Core
|
13
rocbomb 2019-07-05 12:20:07 +08:00
Dapper 还是挺直接的,我比较喜欢
|
14
sun1991 2019-07-05 12:29:12 +08:00
顶 Dapper 一记, 是我用过的最顺手的框架 (可能真算不上 ORM).
我觉得 ORM 的问题就是解决简单的问题很方便, 但是一旦碰到解决复杂问题, 可能比手写 SQL 还要难搞. 反过来讲, 解决简单的问题, 手写 SQL 也不麻烦不是? |
15
cozof 2019-07-05 12:50:36 +08:00 via iPhone
用 EF 要哭,MySQL 表一多同步一次同步半天。
|
16
abcbuzhiming 2019-07-05 12:55:17 +08:00
我在一堆.net 库里试验了一圈,最终确定 sqlsugar 很好用,EF 太重了
|
17
hellojxl 2019-07-05 13:00:28 +08:00 via iPhone
sqlsugar 好用,比 dapper 好用多了
|
18
MonoLogueChi 2019-07-05 13:00:29 +08:00 via Android
一直用 dapper,个人感觉还不错
|
19
BigBunny 2019-07-05 13:19:16 +08:00
dapper 封装一下
|
20
invinci 2019-07-05 14:33:39 +08:00
sqlsugar,非常好用
|
21
ragnaroks 2019-07-05 14:57:33 +08:00
chloe / sqlsugar
不建议用 EF,数据量大会卡到你怀疑人生 |