⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 table_collection_base.atcs

📁 .net samples
💻 ATCS
📖 第 1 页 / 共 2 页
字号:
<#@ Imports
using System;
using System.Text;
using TwoLKit.nTierBuilder.Api.DbDom;
##>
<#@ InstanceMembers
	private ITable Table
	{
		get { return (ITable)Environment["Table"]; }
	}

	public override string RelativeFilePath
	{
		get { return GetClassName() + ".vb"; }
	}
	
	private string GetClassName()
	{
		return GetTableClassName(Table) + "_Base";
	}
	
	private string GetTableClassName(ITable table)
	{
		return table.CodeName + "Collection";
	}
	
	private string GetTableView()
	{
		return Table.View ? "view" : "table";
	}

	private string GetRowClassName(ITable table)
	{
		return table.CodeName + "Row";
	}

	private string GetDbClassName()
	{
		return Table.Database.CodeName;
	}
	
	private bool ShouldGenerateNullableProperty(IColumn column)
	{
		return column.Nullable && SharedUtils.ToDotNetType(column.OleDbType).IsValueType;
	}
	
	private string GetColumnFieldName(IColumn column)
	{
		return SharedUtils.GetFieldName(column.CodeName);
	}

	private string GetColumnIndexVariableName(IColumn column)
	{
		return GetParameterName(column) + "ColumnIndex";
	}
	
	private string GetConvertReaderMethodName(IColumn column)
	{
		Type dotNetType = SharedUtils.ToDotNetType(column.OleDbType);
		if(!column.Nullable)
			throw new ArgumentException();

		if(dotNetType == typeof(string) || dotNetType == typeof(char[]))
			return "ReaderValueToString";
		if(dotNetType == typeof(byte[]))
			return "ReaderValueToByteArray";
		return "ReaderValueToObject";
	}

	private string GetSqlParameterName(IColumn column)
	{
		return SharedUtils.GetParameterName(column.CodeName);
	}

	private string GetPropertyName(IColumn column)
	{
		return SharedUtils.GetPropertyName(column.CodeName);
	}
	
	private Type GetDotNetType(IColumn column)
	{
		return SharedUtils.GetDotNetType(column, false);
	}
	
	private string GetDotNetTypeName(IColumn column)
	{
		return SharedUtils.GetCSharpTypeName(GetDotNetType(column));
	}
	
	private void WritePrimaryKeyParameterList(bool writeType, string rowObjName)
	{
		bool firstItem = true;
		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{
			if(firstItem)
				firstItem = false;
			else
				Writer.Write(", ");

			if(writeType)
			{
				Writer.Write(GetParameterName(column));
				Writer.Write(" As ");
				Writer.Write(GetDotNetTypeName(column));
			}
			else
			{
				Writer.Write(rowObjName);
				Writer.Write('.');
				Writer.Write(GetPropertyName(column));
			}
		}	
	}
	
	private string GetParameterName(IColumn column)
	{
		return SharedUtils.GetParameterName(column.CodeName);
	}
	
	private string GetSqlName(string name)
	{
		return "[" + name + "]";
	}
	
	private bool GenerateMSSqlStoredProcedures
	{
		get { return SharedUtils.GetGenerateMSSqlStoredProcedures(Table.Database); }
	}
	
	private string GetNamespace()
	{
		return SharedUtils.GetDbTierNamespace(Table.Database);
	}
##>
' <fileinfo name="<#= RelativeFilePath #>">
'		<copyright owner="<#= Environment["CopyrightOwner"] #>">
'			All Rights Reserved.
'		</copyright>
'		<remarks>
'			Do not change this source code manually. Changes to this file may 
'			cause incorrect behavior and will be lost if the code is regenerated.
'		</remarks>
'		<generator rewritefile="<#= RewriteExistingFile #>" infourl="http://www.2LKit.com">2LKit nTier Builder</generator>
'		<created><#= DateTime.Now.ToString("f") #></created>
' </fileinfo>

Option Strict Off
Option Explicit On

Imports System
Imports System.Data

'' <summary>
'' Provides methods for common <#= GetTableView() #> operations. Do not change this
'' source code. Update the <#= GetTableClassName(Table) #> class if you need
'' to add or change some functionality.
'' </summary>
Public MustInherit Class <#= GetClassName() #>
	Private _db As <#= GetDbClassName() #>

	'' <summary>
	'' Initializes a new instance of the '<#= GetClassName() #>' class.
	'' </summary>
	'' <param name="db">The <#= GetDbClassName() #> object.</param>
	Public Sub New(db As <#= GetDbClassName() #>)
		_db = db
	End Sub

	'' <summary>
	'' Gets an array of all '<#= Table.Name #>' records.
	'' </summary>
	'' <returns>An array of <#= GetRowClassName(Table) #> objects.</returns>
	Public Overridable Function GetAll() As <#= GetRowClassName(Table) #>()
		Dim cmd As IDbCommand = _db.CreateCommand(<#
			if(GenerateMSSqlStoredProcedures)		
			{ ##>
"<#= Database_StoredProcedures_MSSQL.GetGetAllProcName(Table) #>", true<#
			}
			else
			{ ##>
"SELECT * FROM <#= GetSqlName(Table.Name) #>"<#
			} #>)
		Dim reader As IDataReader = cmd.ExecuteReader()
		Try
			Return MapRecords(reader)
		Finally
			reader.Close()
		End Try
	End Function
<#		if(0 == Table.Columns.GetPrimaryColumns().Length)
	{
		if(!Table.View)
			Environment.AddWarning("The '" + Table.Name + "' table does not have a primary key.");
	}
	else
	{ 
		// Generate only if table/view has primary key
		##>

	'' <summary>
	'' Gets a '<#= GetRowClassName(Table) #>' object by the primary key.
	'' </summary>
<#		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
	{ ##>
	'' <param name="<#= GetParameterName(column) #>">The '<#= column.Name #>' column value.</param>
<#		} ##>
	'' <returns>A <#= GetRowClassName(Table) #> object or null if the object was not found.</returns>
	Public Overridable Function GetByPrimaryKey(<# WritePrimaryKeyParameterList(true, null); #>) As <#= GetRowClassName(Table) #>
<#			if(GenerateMSSqlStoredProcedures)
		{ ##>
		Dim cmd As IDbCommand = _db.CreateCommand("<#= 
			Database_StoredProcedures_MSSQL.GetGetByKeyProcName(Table) #>", True)
<#			}
		else
		{ ##>
		Dim sqlStr As String = "SELECT * FROM <#= GetSqlName(Table.Name) #> WHERE " + _
<#
		bool getByKeyFirstItem = true;
		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{ 
			if(getByKeyFirstItem)
				getByKeyFirstItem = false;
			else
			{ ##> + " AND " + _
<#				} ##>
			"<#= GetSqlName(column.Name) #>=" + _db.CreateSqlParameterName("<#= 
					GetSqlParameterName(column) #>")<#
		} #>

		Dim cmd As IDbCommand = _db.CreateCommand(sqlStr)
<#			} ##>			
<#			foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{ ##>
		_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, <#= GetParameterName(column) #>)
<#			} ##>
		Dim reader As IDataReader = cmd.ExecuteReader()
		Try
			Dim tempArray As <#= GetRowClassName(Table) #>() = MapRecords(reader)
			If 0 = tempArray.Length Then
				Return Nothing
			End If
			Return tempArray(0)
		Finally
			reader.Close()
		End Try

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -