Add Default CURD impl
This commit is contained in:
parent
0d5dc03030
commit
215540ca1c
|
@ -0,0 +1,40 @@
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
using LFlow.Base.Interfaces;
|
||||||
|
|
||||||
|
namespace LFlow.Base.Default;
|
||||||
|
/// <summary>
|
||||||
|
/// 默认的CURD操作
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <typeparam name="K"></typeparam>
|
||||||
|
public abstract class DefaultCurd<T, K> where T : IModel, IDataModel
|
||||||
|
{
|
||||||
|
private readonly IRepo<T, K> _repo;
|
||||||
|
public DefaultCurd(IRepo<T, K> repo)
|
||||||
|
{
|
||||||
|
_repo = repo;
|
||||||
|
}
|
||||||
|
public virtual T Add(T model)
|
||||||
|
{
|
||||||
|
return _repo.SaveOrUpdate(model, false);
|
||||||
|
}
|
||||||
|
public virtual int Delete(K id)
|
||||||
|
{
|
||||||
|
return _repo.Delete(id);
|
||||||
|
}
|
||||||
|
public virtual T Update(T model)
|
||||||
|
{
|
||||||
|
return _repo.SaveOrUpdate(model, true);
|
||||||
|
}
|
||||||
|
public virtual T Get(K id)
|
||||||
|
{
|
||||||
|
return _repo.Get(id);
|
||||||
|
}
|
||||||
|
public virtual List<T> GetAll(int pageIndex, int pageSize, ref int pageTotal)
|
||||||
|
{
|
||||||
|
return _repo.GetAll(pageIndex, pageSize, ref pageTotal);
|
||||||
|
}
|
||||||
|
public abstract List<T> GetWhere(T WhereObject);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,50 @@
|
||||||
|
using System;
|
||||||
|
using LFlow.Base.Interfaces;
|
||||||
|
using SqlSugar;
|
||||||
|
|
||||||
|
namespace LFlow.Base.Default;
|
||||||
|
|
||||||
|
public abstract class DefaultCurdRepo<T, K> : IRepo<T, K> where T : class, IDataModel, new()
|
||||||
|
{
|
||||||
|
private readonly ISqlSugarClient _client;
|
||||||
|
public DefaultCurdRepo(ISqlSugarClient client)
|
||||||
|
{
|
||||||
|
_client = client;
|
||||||
|
}
|
||||||
|
public virtual int Delete(K id)
|
||||||
|
{
|
||||||
|
if (Get(id) != null)
|
||||||
|
{
|
||||||
|
return _client.Deleteable<T>().In(id).ExecuteCommand();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new Exception("删除的对象不存在");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
public virtual T Get(K id)
|
||||||
|
{
|
||||||
|
return _client.Queryable<T>().InSingle(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<T> GetAll(int pageIndex, int pageSize, ref int pageTotal)
|
||||||
|
{
|
||||||
|
return _client.Queryable<T>().ToPageList(pageIndex, pageSize, ref pageTotal);
|
||||||
|
}
|
||||||
|
|
||||||
|
public virtual T SaveOrUpdate(T entity, bool isUpdate)
|
||||||
|
{
|
||||||
|
if (isUpdate)
|
||||||
|
{
|
||||||
|
_client.Updateable(entity).ExecuteCommand();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_client.Insertable(entity).ExecuteCommand();
|
||||||
|
}
|
||||||
|
return entity;
|
||||||
|
}
|
||||||
|
public abstract List<T> Search(T whereObj);
|
||||||
|
public abstract List<K> WhereSearchId(T whereObj);
|
||||||
|
}
|
Loading…
Reference in New Issue