?? builderframef3.cs
字號:
namespace LTP.CodeBuild
{
using LTP.BuilderModel;
using LTP.CodeHelper;
using LTP.IBuilder;
using LTP.IDBO;
using LTP.Utility;
using System;
using System.Collections.Generic;
using System.Text;
public class BuilderFrameF3 : BuilderFrame
{
private IBuilderBLL ibll;
private IBuilderDAL idal;
private IBuilderDALTran idaltran;
public BuilderFrameF3(IDbObject idbobj, string dbName, string nameSpace, string folder, string dbHelperName)
{
base.dbobj = idbobj;
base._dbtype = idbobj.DbType;
base.DbName = dbName;
base.NameSpace = nameSpace;
base.DbHelperName = dbHelperName;
base.Folder = folder;
}
public BuilderFrameF3(IDbObject idbobj, string dbName, string tableName, string modelName, string bllName, string dalName, List<ColumnInfo> fieldlist, List<ColumnInfo> keys, string nameSpace, string folder, string dbHelperName)
{
base.dbobj = idbobj;
base._dbtype = idbobj.DbType;
base.DbName = dbName;
base.TableName = tableName;
base.ModelName = modelName;
base.BLLName = bllName;
base.DALName = dalName;
base.NameSpace = nameSpace;
base.DbHelperName = dbHelperName;
base.Folder = folder;
base.Fieldlist = fieldlist;
base.Keys = keys;
foreach (ColumnInfo info in keys)
{
base._key = info.ColumnName;
base._keyType = info.TypeName;
if (info.IsIdentity)
{
base._key = info.ColumnName;
base._keyType = CodeCommon.DbTypeToCS(info.TypeName);
break;
}
}
}
public string GetBLLCode(string AssemblyGuid, bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool GetModelByCache, bool List, bool ListProc)
{
this.ibll = BuilderFactory.CreateBLLObj(AssemblyGuid);
if (this.ibll == null)
{
return "請選擇有效的業(yè)務(wù)層代碼組件類型!";
}
this.ibll.set_Fieldlist(base.Fieldlist);
this.ibll.set_Keys(base.Keys);
this.ibll.set_NameSpace(base.NameSpace);
this.ibll.set_Modelpath(base.Modelpath);
this.ibll.set_ModelName(base.ModelName);
this.ibll.set_BLLpath(base.BLLpath);
this.ibll.set_BLLName(base.BLLName);
this.ibll.set_Factorypath(base.Factorypath);
this.ibll.set_IDALpath(base.IDALpath);
this.ibll.set_IClass(base.IClass);
this.ibll.set_DALpath(base.DALpath);
this.ibll.set_DALName(base.DALName);
this.ibll.set_IsHasIdentity(base.IsHasIdentity);
this.ibll.set_DbType(base.dbobj.DbType);
return this.ibll.GetBLLCode(Maxid, Exists, Add, Update, Delete, GetModel, GetModelByCache, List);
}
public string GetDALCode(string AssemblyGuid, bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List, string procPrefix)
{
this.idal = BuilderFactory.CreateDALObj(AssemblyGuid);
if (this.idal == null)
{
return "請選擇有效的數(shù)據(jù)層代碼組件類型!";
}
this.idal.set_DbObject(base.dbobj);
this.idal.set_DbName(base.DbName);
this.idal.set_TableName(base.TableName);
this.idal.set_Fieldlist(base.Fieldlist);
this.idal.set_Keys(base.Keys);
this.idal.set_NameSpace(base.NameSpace);
this.idal.set_Folder(base.Folder);
this.idal.set_Modelpath(base.Modelpath);
this.idal.set_ModelName(base.ModelName);
this.idal.set_DALpath(base.DALpath);
this.idal.set_DALName(base.DALName);
this.idal.set_IDALpath(base.IDALpath);
this.idal.set_IClass(base.IClass);
this.idal.set_DbHelperName(base.DbHelperName);
this.idal.set_ProcPrefix(procPrefix);
return this.idal.GetDALCode(Maxid, Exists, Add, Update, Delete, GetModel, List);
}
public string GetDALCodeTran(string AssemblyGuid, bool Maxid, bool Exists, bool Add, bool Update, bool Delete, bool GetModel, bool List, string procPrefix, string tableNameParent, string tableNameSon, string modelNameParent, string modelNameSon, List<ColumnInfo> fieldlistParent, List<ColumnInfo> fieldlistSon, List<ColumnInfo> keysParent, List<ColumnInfo> keysSon, string DALNameParent, string DALNameSon)
{
this.idaltran = BuilderFactory.CreateDALTranObj(AssemblyGuid);
if (this.idaltran == null)
{
return "請選擇有效的數(shù)據(jù)層代碼組件類型!";
}
this.idaltran.set_DbObject(base.dbobj);
this.idaltran.set_DbName(base.DbName);
this.idaltran.set_TableNameParent(tableNameParent);
this.idaltran.set_TableNameSon(tableNameSon);
this.idaltran.set_FieldlistParent(fieldlistParent);
this.idaltran.set_FieldlistSon(fieldlistSon);
this.idaltran.set_KeysParent(keysParent);
this.idaltran.set_KeysSon(keysSon);
this.idaltran.set_NameSpace(base.NameSpace);
this.idaltran.set_Folder(base.Folder);
this.idaltran.set_Modelpath(base.Modelpath);
this.idaltran.set_ModelNameParent(modelNameParent);
this.idaltran.set_ModelNameSon(modelNameSon);
this.idaltran.set_DALpath(base.DALpath);
this.idaltran.set_DALNameParent(DALNameParent);
this.idaltran.set_DALNameSon(DALNameSon);
this.idaltran.set_IDALpath(base.IDALpath);
this.idaltran.set_IClass(base.IClass);
this.idaltran.set_DbHelperName(base.DbHelperName);
this.idaltran.set_ProcPrefix(procPrefix);
return this.idaltran.GetDALCode(Maxid, Exists, Add, Update, Delete, GetModel, List);
}
public string GetDALFactoryCode()
{
StringBuilder builder = new StringBuilder();
builder.Append("using System;\r\n");
builder.Append("using System.Reflection;\r\n");
builder.Append("using System.Configuration;\r\n");
builder.Append("using " + base.IDALpath + ";\r\n");
builder.Append("namespace " + base.Factorypath + "\r\n");
builder.Append("{\r\n");
builder.Append(base.Space(1) + "/// <summary>\r\n");
builder.Append(base.Space(1) + "/// 抽象工廠模式創(chuàng)建DAL。\r\n");
builder.Append(base.Space(1) + "/// web.config 需要加入配置:(利用工廠模式+反射機制+緩存機制,實現(xiàn)動態(tài)創(chuàng)建不同的數(shù)據(jù)層對象接口) \r\n");
builder.Append(base.Space(1) + "/// DataCache類在導(dǎo)出代碼的文件夾里\r\n");
builder.Append(base.Space(1) + "/// <appSettings> \r\n");
builder.Append(base.Space(1) + "/// <add key=\"DAL\" value=\"" + base.DALpath + "\" /> (這里的命名空間根據(jù)實際情況更改為自己項目的命名空間)\r\n");
builder.Append(base.Space(1) + "/// </appSettings> \r\n");
builder.Append(base.Space(1) + "/// </summary>\r\n");
builder.Append(base.Space(1) + "public sealed class DataAccess\r\n");
builder.Append(base.Space(1) + "{\r\n");
builder.Append(base.Space(2) + "private static readonly string AssemblyPath = ConfigurationManager.AppSettings[\"DAL\"];\r\n");
builder.Append(base.Space(2) + "/// <summary>\r\n");
builder.Append(base.Space(2) + "/// 創(chuàng)建對象或從緩存獲取\r\n");
builder.Append(base.Space(2) + "/// </summary>\r\n");
builder.Append(base.Space(2) + "public static object CreateObject(string AssemblyPath,string ClassNamespace)\r\n");
builder.Append(base.Space(2) + "{\r\n");
builder.Append(base.Space(3) + "object objType = DataCache.GetCache(ClassNamespace);//從緩存讀取\r\n");
builder.Append(base.Space(3) + "if (objType == null)\r\n");
builder.Append(base.Space(3) + "{\r\n");
builder.Append(base.Space(4) + "try\r\n");
builder.Append(base.Space(4) + "{\r\n");
builder.Append(base.Space(5) + "objType = Assembly.Load(AssemblyPath).CreateInstance(ClassNamespace);//反射創(chuàng)建\r\n");
builder.Append(base.Space(5) + "DataCache.SetCache(ClassNamespace, objType);// 寫入緩存\r\n");
builder.Append(base.Space(4) + "}\r\n");
builder.Append(base.Space(4) + "catch\r\n");
builder.Append(base.Space(4) + "{}\r\n");
builder.Append(base.Space(3) + "}\r\n");
builder.Append(base.Space(3) + "return objType;\r\n");
builder.Append(base.Space(2) + "}\r\n");
builder.Append(this.GetDALFactoryMethodCode());
builder.Append(base.Space(1) + "}\r\n");
builder.Append("}\r\n");
builder.Append("\r\n");
return builder.ToString();
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -