old_flsystem/类库/Api.Framework/Easy4/Variety/SQLite/OrmSQLiteConfig.cs

155 lines
3.5 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Data;
using System.Data.SQLite;
using System.Linq;
using Easy4net.DBUtility;
namespace Easy4net.Variety.SQLite
{
/// <summary>
/// SQLite数据库配置类
/// </summary>
public class OrmSQLiteConfig : OrmConfig
{
/// <summary>
/// SQLite关键字集合
/// </summary>
private readonly static string[] _keySQLite = { "order", "desc", "key" };
/// <summary>
/// 获取当前支持的数据库类型
/// </summary>
public override DatabaseType DbType
{
get
{
return DatabaseType.SQLITE;
}
}
/// <summary>
/// 获取对应的数据库参数字符前缀
/// </summary>
public override string DbParamChar
{
get
{
return "@";
}
}
/// <summary>
/// 创建一个数据库参数对象
/// </summary>
/// <param name="aConn"></param>
public OrmSQLiteConfig(string aConn)
{
this.ConnectionString = aConn;
}
/// <summary>
/// 根据SQLite数据库参数获取一个MSSQL的数据库参数对象
/// </summary>
/// <param name="aPrm"></param>
public OrmSQLiteConfig(SQLiteConnectionParam aPrm)
{
this.ConnectionString = SQLiteConnectionParam.GetConnectionString(aPrm);
}
/// <summary>
/// 根据当前的全局配置获取一个SQLite的数据库参数对象
/// </summary>
public OrmSQLiteConfig()
{
this.ConnectionString = SQLiteConnectionParam.ConnectionString;
}
/// <summary>
/// 创建一个数据库链接对象
/// </summary>
/// <returns></returns>
internal override IDbConnection CreateDbConnection()
{
return new SQLiteConnection(ConnectionString);
}
/// <summary>
/// 创建一个数据库命令对象
/// </summary>
/// <returns></returns>
internal override IDbCommand CreateDbCommand()
{
return new SQLiteCommand();
}
/// <summary>
/// 创建数据库适配器对象
/// </summary>
/// <returns></returns>
internal override IDbDataAdapter CreateDataAdapter()
{
return new SQLiteDataAdapter();
}
/// <summary>
/// 根据传入的命令对象创建适配器对象
/// </summary>
/// <param name="aCmd"></param>
/// <returns></returns>
internal override IDbDataAdapter CreateDataAdapter(IDbCommand aCmd)
{
return new SQLiteDataAdapter((SQLiteCommand)aCmd);
}
/// <summary>
/// 创建数据库参数对象
/// </summary>
/// <returns></returns>
public override IDbDataParameter CreateDbParameter()
{
return new SQLiteParameter();
}
/// <summary>
/// 根据参数名与值创建数据库参数对象
/// </summary>
/// <param name="aPrmName"></param>
/// <param name="aValue"></param>
/// <returns></returns>
public override IDbDataParameter CreateDbParameter(string aPrmName, object aValue)
{
IDbDataParameter param = CreateDbParameter();
param.ParameterName = "@" + aPrmName;
param.Value = aValue;
return param;
}
/// <summary>
/// 检查SQLite列名是否为数据库的关键字是则进行格式化否则返回原列名
/// </summary>
/// <param name="aColounName"></param>
/// <returns></returns>
internal override string FormatColumnName(string aColounName)
{
string tmp_str = aColounName.ToLower();
if (_keySQLite.Contains(tmp_str))
{
return string.Format("`{0}`", tmp_str);
}
return aColounName;
}
/// <summary>
/// 生成获取自增长列的新添加值的SQL语句
/// </summary>
/// <returns></returns>
internal override string GetAutoSql()
{
return " ;select last_insert_rowid() as AutoId ";
}
}
}