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

📄 table_collection_base.atcs

📁 .net samples
💻 ATCS
📖 第 1 页 / 共 2 页
字号:
	End Function
<#		} ##>
<#		if(!Table.View)
	{ ##>
	
	'' <summary>
	'' Adds a new object into the '<#= Table.Name #>' <#= GetTableView() #>.
	'' </summary>
	'' <param name="value">The <#= GetRowClassName(Table) #> object to be inserted.</param>
	Public Overridable Sub Insert(value As <#= GetRowClassName(Table) #>)
<#		IColumn identityColumn = SharedUtils.GetIdentityColumn(Table);
		if(GenerateMSSqlStoredProcedures)
		{ ##>
		Dim cmd As IDbCommand = _db.CreateCommand("<#= 
			Database_StoredProcedures_MSSQL.GetInsertProcName(Table) #>", true)
<#			}
		else
		{ ##>
		Dim sqlStr As String = "INSERT INTO <#= GetSqlName(Table.Name) #> (" + _
<#			
		bool insertFirstItem = true;
		foreach(IColumn column in Table.Columns.GetWriteableColumns())
		{ 
			if(insertFirstItem)
				insertFirstItem = false;
			else
			{ ##>, " + _
<#				} ##>
			"<#= GetSqlName(column.Name) #><#
		} ##>" + _
			") VALUES (" + _
<#
		insertFirstItem = true;
		foreach(IColumn column in Table.Columns.GetWriteableColumns())
		{ 
			if(insertFirstItem)
				insertFirstItem = false;
			else
			{ ##> + ", " + _
<#				} ##>
			_db.CreateSqlParameterName("<#= GetSqlParameterName(column) #>")<#
		} ##> + ")<#
			if(null != identityColumn)
				Writer.Write(";SELECT @@IDENTITY");
			#>"

		Dim cmd As IDbCommand = _db.CreateCommand(sqlStr)
<#			} // End of else ##>
<#			foreach(IColumn column in Table.Columns.GetWriteableColumns())
		{ 
			if(ShouldGenerateNullableProperty(column))
			{ ##>
		If value.Is<#= GetPropertyName(column) #>Null Then
			_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, DBNull.Value)
		Else
			_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, value.<#= GetPropertyName(column) #>)
		End If
<#				}
			else
			{ ##>
		_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= 
				column.DbType.ToString() #>, value.<#= GetPropertyName(column) #>)
<#				}
		} ##>
<#		if(null != identityColumn)
		{ ##>
		value.<#= GetPropertyName(identityColumn) #> = Convert.To<#= GetDotNetType(identityColumn).Name #>(cmd.ExecuteScalar())
<#		}
		else
		{ ##>
		cmd.ExecuteNonQuery()
<#		} ##>
	End Sub
<#		if(0 < Table.Columns.GetPrimaryColumns().Length)	// Generate only if table/view has primary key
	{ ##>

	'' <summary>
	'' Updates a record in the '<#= Table.Name #>' <#= GetTableView() #>.
	'' </summary>
	'' <param name="value">The <#= GetRowClassName(Table) #> object to update.</param>
	'' <returns>true if the record was updated; otherwise, false.</returns>
	Public Overridable Function Update(value As <#= GetRowClassName(Table) #>) As Boolean
<#			if(GenerateMSSqlStoredProcedures)
		{ ##>
		Dim cmd As IDbCommand = _db.CreateCommand("<#= 
			Database_StoredProcedures_MSSQL.GetUpdateProcName(Table) #>", true)
<#			}
		else
		{ ##>
		Dim sqlStr As String = "UPDATE <#= GetSqlName(Table.Name) #> SET " + _
<#			bool updateFirstItem = true;
		foreach(IColumn column in Table.Columns.GetWriteableNonPrimaryColumns())
		{
			if(updateFirstItem)
				updateFirstItem = false;
			else
			{ ##> + ", " + _
<#				} ##>
			"<#= GetSqlName(column.Name) 
				#>=" + _db.CreateSqlParameterName("<#= GetSqlParameterName(column) #>")<#				
		} #> + _
			" WHERE " + _
<#
		updateFirstItem = true;
		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{ 
			if(updateFirstItem)
				updateFirstItem = false;
			else
			{ ##> + " AND " + _
<#				} ##>
			"<#= GetSqlName(column.Name) 
				#>=" + _db.CreateSqlParameterName("<#= GetSqlParameterName(column) #>")<#
		} ##>

		Dim cmd As IDbCommand = _db.CreateCommand(sqlStr)
<#			} // End of else ##>			
<#			foreach(IColumn column in Table.Columns.GetWriteableNonPrimaryColumns())
		{ 
			if(ShouldGenerateNullableProperty(column))
			{ ##>
		If value.Is<#= GetPropertyName(column) #>Null Then
			_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, DBNull.Value)
		Else
			_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, value.<#= GetPropertyName(column) #>)
		End If
<#					}
			else
			{ ##>
		_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, value.<#= GetPropertyName(column) #>)
<#				}
		} ##>
<#			foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{ ##>
		_db.AddParameter(cmd, "<#= GetSqlParameterName(column) #>", DbType.<#= column.DbType.ToString() #>, value.<#= GetPropertyName(column) #>)
<#			} ##>
		Return 0 <> cmd.ExecuteNonQuery()
	End Function

	'' <summary>
	'' Deletes the specified object from the '<#= Table.Name #>' <#= GetTableView() #>.
	'' </summary>
	'' <param name="value">The <#= GetRowClassName(Table) #> object to delete.</param>
	'' <returns>true if the record was deleted; otherwise, false.</returns>
	Public Overridable Function Delete(value As <#= GetRowClassName(Table) #>) As Boolean
		Return DeleteByPrimaryKey(<# WritePrimaryKeyParameterList(false, "value"); #>)
	End Function

	'' <summary>
	'' Deletes a record from the '<#= Table.Name #>' <#= GetTableView() #> using
	'' the specified primary key.
	'' </summary>
<#		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
	{ ##>
	'' <param name="<#= GetParameterName(column) #>">The '<#= column.Name #>' column value.</param>
<#		} ##>
	'' <returns>true if the record was deleted; otherwise, false.</returns>
	public Overridable Function DeleteByPrimaryKey(<# WritePrimaryKeyParameterList(true, null); #>) As Boolean
<#			if(GenerateMSSqlStoredProcedures)
		{ ##>
		Dim cmd As IDbCommand = _db.CreateCommand("<#= 
			Database_StoredProcedures_MSSQL.GetDeleteByKeyProcName(Table) #>", true)
<#			}
		else
		{ ##>
		Dim sqlStr As String = "DELETE FROM <#= GetSqlName(Table.Name) #> WHERE " + _
<#
		bool delByKeyFirstItem = true;
		foreach(IColumn column in Table.Columns.GetPrimaryColumns())
		{ 
			if(delByKeyFirstItem)
				delByKeyFirstItem = 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) #>)
<#			} ##>
		Return 0 < cmd.ExecuteNonQuery()
	End Function
<#		} ##>

	'' <summary>
	'' Deletes all records from the '<#= Table.Name #>' <#= GetTableView() #>.
	'' </summary>
	'' <returns>The number of deleted records.</returns>
	Public Overridable Function DeleteAll() As Integer
		Return _db.CreateCommand(<#
			if(GenerateMSSqlStoredProcedures)
			{ ##>
"<#= Database_StoredProcedures_MSSQL.GetDeleteAllProcName(Table) #>", true<#
			}
			else
			{ ##>
"DELETE FROM <#= GetSqlName(Table.Name) #>"<#
			} #>).ExecuteNonQuery()
	End Function
<#		} // End of if(!Table.View) ##>

	'' <summary>
	'' Reads data from the provided data reader and returns 
	'' an array of mapped objects.
	'' </summary>
	'' <param name="reader">An IDataReader object to read data.</param>
	'' <returns>An array of <#= GetRowClassName(Table) #> objects.</returns>
	Protected Overridable Function MapRecords(reader As IDataReader) As <#= GetRowClassName(Table) #>()
<#			foreach(IColumn column in Table.Columns)
		{ ##>
		Dim <#= GetColumnIndexVariableName(column) #> As Integer = reader.GetOrdinal("<#= column.Name #>")
<#			} ##>

		Dim recordList As System.Collections.ArrayList = New System.Collections.ArrayList()
		While(reader.Read())
			Dim record As <#= GetRowClassName(Table) #> = New <#= GetRowClassName(Table) #>()
			recordList.Add(record)

<#				foreach(IColumn column in Table.Columns)
			{
				if(column.Nullable)
				{ ##>
			If Not reader.IsDBNull(<#=GetColumnIndexVariableName(column)#>) Then
<#				} ##>
			record.<#= GetPropertyName(column) #> = <#
					if(GetDotNetType(column) == typeof(byte[]))
						Writer.Write("CType(");
					#>reader.<#= SharedUtils.GetReaderMethodName(column) 
					#>(<#=GetColumnIndexVariableName(column)#>)<#
					if(GetDotNetType(column) == typeof(byte[]))
						Writer.Write(", Byte())");
#>
<#					if(column.Nullable)
				{ ##>
			End If
<#					}
			} // end for each ##>
		End While
		Return CType(recordList.ToArray(GetType(<#= GetRowClassName(Table) #>)), <#= GetRowClassName(Table) #>())
	End Function
End Class

⌨️ 快捷键说明

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