首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AgileRepository - 一个基于接口的Repository快速开发库

AgileRepository - 一个基于接口的Repository快速开发库

作者头像
MJ.Zhou
发布2018-10-09 14:43:01
3670
发布2018-10-09 14:43:01
举报
文章被收录于专栏:.NET开发那点事.NET开发那点事

AgileRepository

这是一个可以帮助你快速开发Repository的lib。有点像SpringData JPA根据方法名、注解来自动生成查询方法的功能。 对于一些简单的查询,只需要定义接口就行了,实现都不用。 Github: AgileRepository

依赖

AspectCore >= 0.2.4 Dapper >= 1.50.4 DapperExtensions >= 1.6.3 System.Threading.Tasks.Extensions >= 4.3.0

使用

public interface IUserRepository:IAgileRepository<Users>
{
    [QueryByMethodName]
    IEnumerable<Users> QueryByUserName(string userName);

}
var repository = AgileRepository.Proxy.SingletonInstance<IUserRepository>();
repository.QueryByUserName("admin"); 

配置

    AgileRepository.SetConfig(new AgileRepositoryConfig()
    {
            SqlMonitor = (sql, paramters ) =>
            {
                    Console.WriteLine(sql);
            },
            ConnectionName = "conn"
    });

示例

根据sql查询

    [QueryBySql("SELECT * FROM USERS")]
    IEnumerable<User> TestSql();

    [QueryBySql("SELECT * FROM USERS where username=@userName")]
    IEnumerable<User> TestSql1(string userName); 

根据方法名称查询

    [QueryByMethodName]
    IEnumerable<User> QueryByUserName(string userName);

    [QueryByMethodName]
    IEnumerable<User> QueryByUserNameAndId(string userName, string id);

    [QueryByMethodName]
    IEnumerable<User> QueryByCreaterIsNull();

    [QueryByMethodName]
    IEnumerable<User> QueryByCreaterIsNotNull(); 

查询所有

    [QueryAll]
    IEnumerable<User> QueryAll(); 

根据 sql Count

    [CountBySql("Select count(*) from users")]
    int TestCount();

    [CountBySql("Select count(*) from users where userName=@userName")]
    int TestCount1(string userName); 

根据方法名Count

    [CountByMethodName]
    int CountByUserName(string userName);

    [CountByMethodName]
    int CountByIdAndUserName(string id, string userName);

Count所有

    [CountAll]
    int CountAll();

Insert

    [Insert]
    int Insert(User user);
    [Insert]
    int Insert(IEnumerable<User> users);

Update

    [Update]
    int Update(User user);

    [Update]
    int Update(IEnumerable<User> users);

    [Delete]
    int Delete(User user);

    [Delete]
    int Delete(IEnumerable<User> users);

    [DeleteByMethodName]
    int DeleteByUserName(string userName);

执行非查询sql

    [ExecuteBySql("Delete from [users] where id =@id ")]
    int Execute(string id);

支持的where关键字

Key

Name

Where

And

QueryByUserNameAndId

where UserName=@UserName And Id=@Id

Or

QueryByUserNameOrId

where UserName=@UserName Or Id=@Id

IsNull

QueryByUserNameIsNull

where UserName Is Null

IsNotNull

QueryByUserNameIsNotNull

where UserName Is Not Null

GreaterThen

QueryByAgeGreaterThen

where Age>@Age

GreaterEqual

QueryByAgeGreaterEqual

where Age>=@Age

LessThen

QueryByAgeLessThen

where Age<@Age

LessEqual

QueryByAgeLessEqual

where Age<=@Age

Not

QueryByAgeNot

where Age!=@Age

In

QueryByUserNameIn

where UserName in @UserName

NotIn

QueryByUserNameNotIn

where UserName Not in @UserName

Like

QueryByUserNameLike

where UserName Like @UserName

NotLike

QueryByUserNameNotLike

where UserName Not Like @UserName

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • AgileRepository
    • 依赖
      • 使用
        • 配置
          • 示例
            • 根据sql查询
            • 根据方法名称查询
            • 查询所有
            • 根据 sql Count
            • 根据方法名Count
            • Count所有
            • Insert
            • Update
            • 执行非查询sql
          • 支持的where关键字
          相关产品与服务
          云数据库 SQL Server
          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档