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

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

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfsfw.html