📄 table_collection_base.atcs
字号:
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 + -