?? builderdal.cs
字號:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.Data.SqlClient;
using LTP.Utility;
using LTP.IDBO;
using LTP.CodeHelper;
namespace LTP.BuilderDALELParam
{
/// <summary>
/// 數據訪問層代碼構造器(Parameter方式)
/// </summary>
public class BuilderDAL : LTP.IBuilder.IBuilderDAL
{
#region 私有變量
protected string _key = "ID";//標識列,或主鍵字段
protected string _keyType = "int";//標識列,或主鍵字段類型
#endregion
#region 公有屬性
IDbObject dbobj;
private string _dbname;
private string _tablename;
private string _modelname; //model類名
private string _dalname;//dal類名
private List<ColumnInfo> _fieldlist;
private List<ColumnInfo> _keys; // 主鍵或條件字段列表
private string _namespace; //頂級命名空間名
private string _folder; //所在文件夾
private string _dbhelperName;//數據庫訪問類名
private string _modelpath;
private string _dalpath;
private string _idalpath;
private string _iclass;
private string _procprefix;
public IDbObject DbObject
{
set { dbobj = value; }
get { return dbobj; }
}
/// <summary>
/// 庫名
/// </summary>
public string DbName
{
set { _dbname = value; }
get { return _dbname; }
}
/// <summary>
/// 表名
/// </summary>
public string TableName
{
set { _tablename = value; }
get { return _tablename; }
}
/// <summary>
/// 選擇要生成的字段集合
/// </summary>
public List<ColumnInfo> Fieldlist
{
set { _fieldlist = value; }
get { return _fieldlist; }
}
/// <summary>
/// 主鍵或條件字段的集合
/// </summary>
public List<ColumnInfo> Keys
{
set { _keys = value; }
get { return _keys; }
}
/// <summary>
/// 頂級命名空間名
/// </summary>
public string NameSpace
{
set { _namespace = value; }
get { return _namespace; }
}
/// <summary>
/// 所在文件夾
/// </summary>
public string Folder
{
set { _folder = value; }
get { return _folder; }
}
/*============================*/
/// <summary>
/// 實體類的命名空間
/// </summary>
public string Modelpath
{
set { _modelpath = value; }
get { return _modelpath; }
}
/// <summary>
/// 類名
/// </summary>
public string ModelName
{
set { _modelname = value; }
get { return _modelname; }
}
/// <summary>
/// 實體類的整個命名空間 + 類名,即等于 Modelpath+ModelName
/// </summary>
public string ModelSpace
{
get { return Modelpath + "." + ModelName; }
}
/*============================*/
/// <summary>
/// 數據層的命名空間
/// </summary>
public string DALpath
{
set { _dalpath = value; }
get
{
return _dalpath;
}
}
public string DALName
{
set { _dalname = value; }
get { return _dalname; }
}
/*============================*/
/// <summary>
/// 接口的命名空間
/// </summary>
public string IDALpath
{
set { _idalpath = value; }
get
{
return _idalpath;
}
}
/// <summary>
/// 接口類名
/// </summary>
public string IClass
{
set { _iclass = value; }
get { return _iclass; }
}
/*============================*/
/// <summary>
/// 數據庫訪問類名
/// </summary>
public string DbHelperName
{
set { _dbhelperName = value; }
get { return _dbhelperName; }
}
/// <summary>
/// 存儲過程前綴
/// </summary>
public string ProcPrefix
{
set { _procprefix = value; }
get { return _procprefix; }
}
#endregion
#region 構造屬性
/// <summary>
/// 所選字段的 select 列表
/// </summary>
public string Fieldstrlist
{
get
{
StringPlus _fields = new StringPlus();
foreach (ColumnInfo obj in Fieldlist)
{
_fields.Append(obj.ColumnName + ",");
}
_fields.DelLastComma();
return _fields.Value;
}
}
/// <summary>
/// 不同數據庫字段類型
/// </summary>
public string DbParaDbType
{
get
{
return "DbType";
}
}
/// <summary>
/// 存儲過程參數 調用符號@
/// </summary>
public string preParameter
{
get
{
return "@";
}
}
/// <summary>
/// 列中是否有標識列
/// </summary>
public bool IsHasIdentity
{
get
{
bool isid = false;
if (_keys.Count > 0)
{
foreach (ColumnInfo key in _keys)
{
if (key.IsIdentity)
{
isid = true;
}
}
}
return isid;
}
}
private string KeysNullTip
{
get
{
if (_keys.Count == 0)
{
return "//該表無主鍵信息,請自定義主鍵/條件字段";
}
else
{
return "";
}
}
}
#endregion
#region 構造函數
public BuilderDAL()
{
}
public BuilderDAL(IDbObject idbobj)
{
dbobj = idbobj;
}
public BuilderDAL(IDbObject idbobj, string dbname, string tablename, string modelname, string dalName,
List<ColumnInfo> fieldlist, List<ColumnInfo> keys, string namepace,
string folder, string dbherlpername, string modelpath, string modelspace,
string dalpath, string idalpath, string iclass)
{
dbobj = idbobj;
_dbname = dbname;
_tablename = tablename;
_modelname = modelname;
_dalname = dalName;
_namespace = namepace;
_folder = folder;
_dbhelperName = dbherlpername;
_modelpath = modelpath;
_dalpath = dalpath;
_idalpath = idalpath;
_iclass = iclass;
Fieldlist = fieldlist;
Keys = keys;
foreach (ColumnInfo key in _keys)
{
_key = key.ColumnName;
_keyType = key.TypeName;
if (key.IsIdentity)
{
_key = key.ColumnName;
_keyType = CodeCommon.DbTypeToCS(key.TypeName);
break;
}
}
}
#endregion
#region 根據列信息 得到參數的列表
/// <summary>
/// 得到Where條件語句 - Parameter方式 (例如:用于Exists Delete GetModel 的where)
/// </summary>
/// <param name="keys"></param>
/// <returns></returns>
public string GetWhereExpression(List<ColumnInfo> keys)
{
StringPlus strclass = new StringPlus();
foreach (ColumnInfo key in keys)
{
strclass.Append(key.ColumnName + "=" + preParameter + key.ColumnName + " and ");
}
strclass.DelLastChar("and");
return strclass.Value;
}
/// <summary>
/// 生成sql語句中的參數列表(例如:用于Add Exists Update Delete GetModel 的參數傳入)
/// </summary>
/// <param name="keys"></param>
/// <returns></returns>
public string GetPreParameter(List<ColumnInfo> keys)
{
StringPlus strclass = new StringPlus();
foreach (ColumnInfo key in keys)
{
strclass.AppendSpaceLine(3, "db.AddInParameter(dbCommand, \"" + key.ColumnName + "\", DbType." +CSToProcType(key.TypeName) + "," + key.ColumnName + ");");
}
return strclass.Value;
}
#endregion
#region 數據層(整個類)
/// <summary>
/// 得到整個類的代碼
/// </summary>
public string GetDALCode(bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List)
{
StringPlus strclass = new StringPlus();
strclass.AppendLine("using System;");
strclass.AppendLine("using System.Data;");
strclass.AppendLine("using System.Text;");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -