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);
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|