using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using SqlSugar;
namespace IStation.DAL
{
///
/// 数据库访问基类
///
/// 实体类类型
public partial class BaseDAL where T : Entity.BaseEntity, new()
{
///
/// 连接配置
///
public virtual ConnectionConfig ConnectionConfig
{
get
{
return default;
}
}
#region Insert
///
/// 插入指定对象到数据库中
///
public virtual long Insert(T entity)
{
if (entity == null)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Insertable(entity).ExecuteReturnSnowflakeId();
}
}
///
/// 插入指定对象集合到数据库中
///
public virtual bool Inserts(List list)
{
if (list == null || list.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Insertable(list).ExecuteReturnSnowflakeIdList().Count()>0;
}
}
///
/// 插入并返回
///
public virtual List InsertsR(List list)
{
if (list == null || list.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Insertable(list).ExecuteReturnSnowflakeIdList();
}
}
///
/// 大批量插入
///
public virtual bool BulkInserts(List list)
{
if (list == null || list.Count < 1)
return default;
list.ForEach(x=>x.ID=SnowFlakeSingle.instance.NextId());
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Fastest().BulkCopy(list)>0;
}
}
#endregion
#region Update
///
/// 更新对象属性到数据库中
///
public virtual bool Update(T entity)
{
if (entity == null)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Updateable(entity).ExecuteCommand()>0;
}
}
///
/// 更新部分
///
public virtual bool UpdatePart(T entity, List pros)
{
if (entity == null)
return default;
if (pros == null || pros.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Updateable(entity).UpdateColumns(pros.ToArray()).ExecuteCommand()>0;
}
}
///
/// 更新指定对象集合到数据库中
///
public virtual bool Updates(List list)
{
if (list == null || list.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Updateable(list).ExecuteCommand() > 0;
}
}
///
/// 批量更新部分
///
public virtual bool UpdatesPart(List list, List pros)
{
if (list == null || list.Count() < 1)
return default;
if (pros == null || pros.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Updateable(list).UpdateColumns(pros.ToArray()).ExecuteCommand() > 0;
}
}
///
/// 大批量更新
///
public virtual bool BulkUpdates(List list)
{
if (list == null || list.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Fastest().BulkUpdate(list) > 0;
}
}
#endregion
#region Delete
///
/// 从数据库中删除指定对象
///
public virtual bool Delete(T entity)
{
if (entity == null)
return default;
if (entity.ID < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable().Where(entity).ExecuteCommand() > 0;
}
}
///
/// 从数据库中删除指定对象集合
///
public virtual bool Deletes(List list)
{
if (list == null || list.Count < 1)
return default;
if (list.Exists(x => x.ID < 1))
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable().Where(list).ExecuteCommand() > 0;
}
}
///
/// 根据指定对象的ID,从数据库中删除指定对象
///
public virtual bool DeleteByID(long ID)
{
if (ID < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable().Where(x=>x.ID==ID).ExecuteCommand() > 0;
}
}
///
/// 通过id列表删除
///
public virtual bool DeleteByIds(List ids)
{
if (ids == null || ids.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Deleteable().Where(x => ids.Contains(x.ID)).ExecuteCommand() > 0;
}
}
///
/// 从数据库中删除所有对象
///
public virtual bool DeleteAll()
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.DbMaintenance.TruncateTable();
}
}
#endregion
#region Query
///
/// 返回数据库所有的对象集合
///
public virtual List GetAll()
{
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable().ToList();
}
}
///
/// 查询数据库,返回指定ID的对象
///
public virtual T GetByID(long id)
{
if (id < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable().First(x => x.ID == id);
}
}
///
/// 通拓id列表获取
///
///
public virtual List GetByIds(List ids)
{
if (ids == null || ids.Count < 1)
return default;
using (SqlSugarClient db = new SqlSugarClient(ConnectionConfig))
{
return db.Queryable().OrderBy(x=>x.ID).Where(x =>ids.Contains(x.ID)).ToList();
}
}
#endregion
}
}