首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dapper SqlMapperExtensions / Dapper.Contrib?

Dapper SqlMapperExtensions / Dapper.Contrib?
EN

Stack Overflow用户
提问于 2011-11-23 04:23:19
回答 3查看 8.4K关注 0票数 11

似乎有一个DapperExtensions项目,但在Dapper项目中也有一个SqlMapperExtensions类。有重叠吗?一个比另一个更受欢迎吗?我找不到任何关于Dapper.Contrib的文档。

EN

回答 3

Stack Overflow用户

发布于 2011-11-23 07:11:31

票数 6
EN

Stack Overflow用户

发布于 2013-12-17 19:11:05

很久以前,在和萨姆讨论过之后,我写了第一个Dapper.Contrib。我不知道扩展包的细节,它们似乎或多或少做了相同的CRUD-事情,但在某些情况下,Contrib-package可能会更快一些,因为它有一个内置的缓存,既可以用于查询,也可以用于基于接口的POCOs,并带有内部的“是脏”跟踪。摘自测试代码:

代码语言:javascript
复制
        using (var connection = GetOpenConnection())
        {
            connection.Get<User>(3).IsNull();

            var id = connection.Insert(new User {Name = "Adam", Age = 10});

            //get a user with "isdirty" tracking
            var user = connection.Get<IUser>(id);
            user.Name.IsEqualTo("Adam");
            connection.Update(user).IsEqualTo(false);    //returns false if not updated, based on tracking
            user.Name = "Bob";
            connection.Update(user).IsEqualTo(true);    //returns true if updated, based on tracking
            user = connection.Get<IUser>(id);
            user.Name.IsEqualTo("Bob");

            //get a user with no tracking
            var notrackedUser = connection.Get<User>(id);
            notrackedUser.Name.IsEqualTo("Bob");
            connection.Update(notrackedUser).IsEqualTo(true);   //returns true, even though user was not changed
            notrackedUser.Name = "Cecil";
            connection.Update(notrackedUser).IsEqualTo(true);
            connection.Get<User>(id).Name.IsEqualTo("Cecil");

            connection.Query<User>("select * from Users").Count().IsEqualTo(1);
            connection.Delete(user).IsEqualTo(true);
            connection.Query<User>("select * from Users").Count().IsEqualTo(0);

            connection.Update(notrackedUser).IsEqualTo(false);   //returns false, user not found

Contrib没有Extensions所具有的漂亮的谓词系统。请注意,这里有一个关于Dapper.Contrib的很好的帖子Dapper.Rainbow VS Dapper.Contrib

票数 5
EN

Stack Overflow用户

发布于 2012-01-13 09:28:42

我想user1003841指的是https://github.com/tmsmith/Dapper-Extensions

作者是萨德·史密斯和佩奇·布鲁克斯,所以这不是萨姆·萨夫隆的作品。项目页面上写着“这个库是一个独立于Dapper.Contrib的库”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8233314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档