You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

208 lines
7.0 KiB

using Monitor.FrameWork;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DbType = SqlSugar.DbType;
namespace Aborlen.Model
{
public partial class BasicEntity<T> where T : class, new()
{
public static int Insert( T entity ,bool IsIgnoreId=true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable<T>(entity).IgnoreColumns("Id").ExecuteReturnIdentity();
}
else
{
return db.Insertable<T>(entity).ExecuteReturnIdentity();
}
}
}
/// <summary>
/// 插入数据
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public static int Insert(List<T> entities, bool IsIgnoreId = true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable<T>(entities).IgnoreColumns("Id").ExecuteCommand();
}
else
{
return db.Insertable<T>(entities).ExecuteCommand();
}
}
}
/// <summary>
/// 向数据库表中插入数据,返回受影响行数
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static int Insert(object obj)
{
return Insert((T )obj);
}
/// <summary>
/// 出入数据,不包含null列
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public static int InsertWithoutNullCol(List<T> entities, bool IsIgnoreId = true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable(entities).IgnoreColumns(ignoreNullColumn: true).IgnoreColumns("Id").ExecuteCommand();
}
else
{
return db.Insertable(entities).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
}
}
public static int InsertWithoutNullCol(T entities, bool IsIgnoreId = true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable(entities).IgnoreColumns(ignoreNullColumn: true).IgnoreColumns("Id").ExecuteCommand();
}
else
{
return db.Insertable(entities).IgnoreColumns(ignoreNullColumn: true).ExecuteCommand();
}
}
}
public static int InsertWithoutNullCol(object obj)
{
return InsertWithoutNullCol((List<T>) obj);
}
/// <summary>
/// 插入数据,返回自增列
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public static int InsertRtnIndex(List<T> entities, bool IsIgnoreId = true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable<T>(entities).IgnoreColumns("Id").ExecuteReturnIdentity();
}
else
{
return db.Insertable<T>(entities).ExecuteReturnIdentity();
}
}
}
/// <summary>
/// 向数据库表中插入数据,返回自增列Id
/// </summary>
/// <param name="obj"></param>
/// <returns></returns>
public static int InsertRtnIndex(object obj)
{
List<T> list = new List<T>();
list.Add((T)obj);
return InsertRtnIndex(list);
}
/// <summary>
/// blukCopy插入 只适合1万以上超大数据插入或者上面数据插入慢情况,小数据插入性能不行,不是所有库都支持
/// </summary>
/// <param name="entities"></param>
/// <returns></returns>
public static int InsertBulk(List<T> entities, bool IsIgnoreId = true)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
if (IsIgnoreId)
{
return db.Insertable(entities).IgnoreColumns("Id").UseSqlServer().ExecuteBulkCopy();
}
else
{
return db.Insertable(entities).IgnoreColumns("Id").UseSqlServer().ExecuteBulkCopy();
}
}
//db.Insertable(List<实体>).UseMySql().ExecuteBulkCopy()//高版本Mysql.data驱动,连接字符串要加AllowLoadLocalInfile=true
//db.Insertable(List<实体>).UseOracle().ExecuteBulkCopy()//5.0.3.8-Preview
}
public static int InsertBulk(object obj)
{
return InsertBulk((List<T>)obj);
//db.Insertable(List<实体>).UseMySql().ExecuteBulkCopy()//高版本Mysql.data驱动,连接字符串要加AllowLoadLocalInfile=true
//db.Insertable(List<实体>).UseOracle().ExecuteBulkCopy()//5.0.3.8-Preview
}
/// <summary>
/// 向数据库插入Datatable
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static int InsertTable(DataTable dt)
{
using (SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = UserConfiguration.ConnectionString, DbType = DbType.SqlServer, IsAutoCloseConnection = true }))
{
List<Dictionary<string, object>> dc = db.Utilities.DataTableToDictionaryList(dt);//5.0.23版本支持
return db.Insertable(dc).AS(typeof(T).Name).ExecuteReturnIdentity();
}
}
public static int InsertTable(object obj)
{
return InsertTable((DataTable)obj);
}
}
}