wangxiaoaer
V2EX  ›  问与答

C#中 ORM 方案

  •  
  •   wangxiaoaer · Jul 5, 2019 · 4624 views
    This topic created in 2684 days ago, the information mentioned may be changed or developed.

    有个 Web 接口需要基于 C#开发,Mysql 数据库,N 多张表,每张表 50+字段。

    如果全部用手写的方式拼 sql,可能要死,所以考虑到 ORM。

    搜了一下好像有 Dapper,但是同样也看到一些人建议什么 LINQ,因为对.Net 开发不熟,所以想问问都有哪些方案?

    要求:

    1 轻量化:不要依赖很重,装很多东西那种,dotNet 平台内置的最好,性能即使稍微低一点关系不大,只要稳定。

    2 文档:不要求很高质量,起码能让人看懂。

    3 生命力:尽量不要推荐几年前的方案(库),除非经过了多年考验。

    Supplement 1  ·  Jul 5, 2019
    谢谢各位回复,我们最终决定选择 EF6.
    21 replies  •  2019-07-05 14:57:33 +08:00
    wdoit9
    wdoit9
    Jul 5, 2019
    1
    EF?
    ByteRan
    ByteRan
    Jul 5, 2019
    2
    同求

    我们公司是这样的,

    model 通过工具(每次新增和更改 model 都得跑一下)生成 partial 扩展类(里面是各种自动生成的增删改查 sql )

    每次增删改查的时候,都会自动从扩展类里面读取 sql 然后执行。
    fengyunSmlie
    fengyunSmlie
    Jul 5, 2019
    3
    EF
    Dapper
    FreeSQL
    DOS.ORM
    还有更多。。
    轮子其实不少
    MaxTan
    MaxTan
    Jul 5, 2019
    4
    EF Dapper NHibernate
    LongMaoz
    LongMaoz
    Jul 5, 2019
    5
    .NET 平台上的轮子还是挺多的,官方自带的 EF 用 linq 语法就挺好用
    wangxiaoaer
    wangxiaoaer
    OP
    Jul 5, 2019
    6
    https://docs.microsoft.com/en-us/ef/ef6/

    EF 是这个吧,看了下,觉得还不错,准备试一下。 另外,初步看了下好像 EF core 是新的替代品吧,有些功能还在开发中,我就选了 EF6,有没有问题?
    hihipp
    hihipp
    Jul 5, 2019
    7
    Dapper 原则上不算一个 ORM。

    内置就是 EF 了,如果是 .net core 环境,目前还是不太建议用 EF Core。

    第三方可选 https://github.com/ServiceStack/ServiceStack.OrmLite,收费。
    babedoll
    babedoll
    Jul 5, 2019
    8
    EF 官方的 好用稳定,看你数据量大不大需不需要跨库分表了,如果不需要用 EF 是很舒适的。
    catqi
    catqi
    Jul 5, 2019
    9
    想自己写 sql 就用 dapper,轻量级
    Mithril
    Mithril
    Jul 5, 2019❤️2
    10
    啥也不用想的自然是 EF 最方便,文档也是相当全。一般的需求只需要点几下鼠标生成对应的代码,全程不需要写 SQL,而且对 Linq 支持极好。缺点就是这框架为了让你可以不写 SQL,做的相当的复杂,你要学的东西很多很多,不然出了问题很难调试。但用 EF 的时候你需要注意就是它不是很推荐你去手动修改数据库,最好是直接写代码,直接用 EF 映射成数据库,不然会有各种问题。
    Dapper 就简单很多了,你自己手写 SQL 进代码,查出来的东西直接映射成对象。
    个人建议时如果你不是很熟悉 SQL,就用 EF。毕竟很多时候水平一般的码农写出来的那 SQL 还不如 EF 自动生成的。如果你的表关系非常复杂,会有各种关联更新查询删除啥的,也用 EF 吧,毕竟省得你去搞那个复杂的 SQL。如果你很熟悉 SQL,或者你的查询不会很复杂,那就用 Dapper。毕竟这框架需要你手写 SQL,不会自动生成,非常简单。因为简单,性能也很不错。
    这里有个官方对比
    https://entityframework.net/ef-vs-dapper
    mohoumk2
    mohoumk2
    Jul 5, 2019 via Android
    11
    sqlsugar
    dhssingle
    dhssingle
    Jul 5, 2019
    12
    EF Core
    rocbomb
    rocbomb
    Jul 5, 2019
    13
    Dapper 还是挺直接的,我比较喜欢
    sun1991
    sun1991
    Jul 5, 2019
    14
    顶 Dapper 一记, 是我用过的最顺手的框架 (可能真算不上 ORM).
    我觉得 ORM 的问题就是解决简单的问题很方便, 但是一旦碰到解决复杂问题, 可能比手写 SQL 还要难搞. 反过来讲, 解决简单的问题, 手写 SQL 也不麻烦不是?
    cozof
    cozof
    Jul 5, 2019 via iPhone
    15
    用 EF 要哭,MySQL 表一多同步一次同步半天。
    abcbuzhiming
    abcbuzhiming
    Jul 5, 2019
    16
    我在一堆.net 库里试验了一圈,最终确定 sqlsugar 很好用,EF 太重了
    hellojxl
    hellojxl
    Jul 5, 2019 via iPhone
    17
    sqlsugar 好用,比 dapper 好用多了
    MonoLogueChi
    MonoLogueChi
    Jul 5, 2019 via Android
    18
    一直用 dapper,个人感觉还不错
    bigbunny
    bigbunny
    Jul 5, 2019
    19
    dapper 封装一下
    invinci
    invinci
    Jul 5, 2019
    20
    sqlsugar,非常好用
    ragnaroks
    ragnaroks
    Jul 5, 2019
    21
    chloe / sqlsugar
    不建议用 EF,数据量大会卡到你怀疑人生
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1197 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 17:38 · PVG 01:38 · LAX 09:38 · JFK 12:38
    ♥ Do have faith in what you're doing.