385 lines
18 KiB
Text
385 lines
18 KiB
Text
//***************************************************************************//
|
|
// Legenerálja a magadott osztályhoz tartozó DataAccessor tejles //
|
|
// forráskódját //
|
|
//***************************************************************************//
|
|
template GenerateEntityDA(MClass as ENTITY)
|
|
[BOM]using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using Kreta.Framework;
|
|
using Kreta.Framework.Collections;
|
|
using Kreta.Framework.Collections.Generic;
|
|
using Kreta.Framework.Entities;
|
|
using Kreta.Framework.Entities.Associations;
|
|
using Kreta.Framework.Entities.Generic;
|
|
|
|
namespace SDA.[ProjectName].Entities
|
|
{
|
|
[GenerateDBHelper([ENTITY])]
|
|
|
|
internal class [ENTITY.name]DA : EntityDataAccessor<[ENTITY.name]>
|
|
{
|
|
private static [ENTITY.name]DBHelper m_dbhelper = new [ENTITY.name]DBHelper();
|
|
|
|
protected override IEntityDBHelper<[ENTITY.name]> dbhelper
|
|
{
|
|
get { return m_dbhelper; }
|
|
}
|
|
|
|
#region Load
|
|
|
|
[GenerateLoadByID([ENTITY])]
|
|
|
|
[GenerateLoadBaseSet([ENTITY])]
|
|
|
|
#endregion
|
|
|
|
[GenerateInsertEntity([ENTITY])]
|
|
|
|
[GenerateUpdateEntity([ENTITY])]
|
|
|
|
[GenerateDeleteEntity([ENTITY])]
|
|
|
|
[GenerateUpdateAssociations([ENTITY])]
|
|
|
|
#region Asszociációkkal kapcsolatos adatbázisműveletek (entitásspecifikus)
|
|
|
|
[GenerateEntityLoaders([ENTITY])]
|
|
|
|
#endregion
|
|
}
|
|
|
|
[GenerateEntityCollectionDAs([ENTITY])]
|
|
}
|
|
|
|
end template
|
|
|
|
template GenerateDynamicColums(MClass, entityname)
|
|
[loop (MClass->MAttribute)]
|
|
{ "[MAttribute.name]", "[ConvertNameToSQLTableName([entityname])].[ConvertNameToSQLColumnName([MAttribute.name])]" },
|
|
[end loop]
|
|
[if (IsMasterEntity([MClass]) == "false")]
|
|
[loop (MClass -> SuperClass as MBaseClass)]
|
|
[if (GetInheritance([MClass]) == "tpc")]
|
|
[GenerateDynamicColums([MBaseClass], [MClass.name])][break]
|
|
[else]
|
|
[GenerateDynamicColums([MBaseClass], [MBaseClass.name])][break]
|
|
[end if]
|
|
[end loop]
|
|
[end if]
|
|
end template
|
|
|
|
//***************************************************************************//
|
|
//***************************************************************************//
|
|
template GenerateDBHelper(MClass as ENTITY)
|
|
internal sealed class [ENTITY.name]DBHelper : EntityDBHelper<[ENTITY.name]>
|
|
{
|
|
private Dictionary<string, string> dynamicColumns = new Dictionary<string, string>()
|
|
{
|
|
[GenerateDynamicColums([ENTITY], [ENTITY.name])]
|
|
};
|
|
|
|
private const string dynamicQueryCommandText =
|
|
"select " +
|
|
"[ConvertNameToSQLTableName([ENTITY.name])].ID, " +
|
|
"{COLUMNS}" +
|
|
[GenerateDynamicFieldListWithBaseClassFields([ENTITY], [ENTITY.name])]
|
|
"from " +
|
|
"[ConvertNameToSQLTableName([ENTITY.name])] " +
|
|
[loop (ENTITY -> SuperClass as MBaseClass)]
|
|
"[GenerateSuperClassTableList([ENTITY])] " +
|
|
[break]
|
|
[end loop]
|
|
"where " +
|
|
"(1 = 1) ";
|
|
|
|
private const string emptyQueryCommandText =
|
|
"select " +
|
|
"[ConvertNameToSQLTableName([ENTITY.name])].ID, " +
|
|
[GenerateFieldListWithBaseClassFields([ENTITY], [ENTITY.name])]
|
|
"from " +
|
|
"[ConvertNameToSQLTableName([ENTITY.name])] " +
|
|
[loop (ENTITY -> SuperClass as MBaseClass)]
|
|
"[GenerateSuperClassTableList([ENTITY])] " +
|
|
[break]
|
|
[end loop]
|
|
"where " +
|
|
"(1 = 1) ";
|
|
|
|
public override string EmptyQueryCommandText
|
|
{
|
|
get
|
|
{
|
|
return emptyQueryCommandText;
|
|
}
|
|
}
|
|
|
|
public override string DynamicQueryCommandText
|
|
{
|
|
get
|
|
{
|
|
return dynamicQueryCommandText;
|
|
}
|
|
}
|
|
|
|
public override IDictionary<string, string> DynamicColumns
|
|
{
|
|
get
|
|
{
|
|
return dynamicColumns;
|
|
}
|
|
}
|
|
|
|
protected override [ENTITY.name] CreateEntityInstance()
|
|
{
|
|
return [ENTITY.name].GiveAnInstance();
|
|
}
|
|
|
|
#region Lekérdezés
|
|
|
|
public override void LoadEntityFields([ENTITY.name] entity, [GetCSharpSQLDataReaderType()] reader)
|
|
{
|
|
[GenerateLoadEntityCore([ENTITY], 1, "entity", "reader")]
|
|
}
|
|
|
|
public override void LoadEntityFields([ENTITY.name] entity, [GetCSharpSQLDataReaderType()] reader, ColumnFilterMode columnFilterMode, IEnumerable<string> columns)
|
|
{
|
|
int index = 1;
|
|
if (columns == null)
|
|
{
|
|
columns = new List<string>(index);
|
|
}
|
|
[GenerateDynamicLoadEntityCore([ENTITY], "entity", "reader")]
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Paraméter kötés
|
|
|
|
public override void BindAttributes([ENTITY.name] entity, [GetCSharpSQLCommandType()] command)
|
|
{
|
|
[if (GetInheritance([ENTITY]) == "tpc")]
|
|
[loop (ENTITY -> SuperClass as MBaseClass)]
|
|
[loop (MBaseClass -> MAttribute as ATTRIBUTE where [ATTRIBUTE.name] != [MBaseClass.name])]
|
|
[if (IsComputedAttribute([ATTRIBUTE]) == _False())]
|
|
|
|
[if (IsAttributeRequired([ATTRIBUTE]) == _True())]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], false);
|
|
[else]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], entity.m_[ATTRIBUTE.name] == null);
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[end loop]
|
|
[end if]
|
|
[loop (ENTITY -> MAttribute as ATTRIBUTE where [ATTRIBUTE.name] != [ENTITY.name])]
|
|
|
|
[if (IsAttributeRequired([ATTRIBUTE]) == _True())]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], false);
|
|
[else]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], entity.m_[ATTRIBUTE.name] == null);
|
|
[end if]
|
|
[end loop]
|
|
}
|
|
|
|
public override void DynamicBindAttributes([ENTITY.name] entity, [GetCSharpSQLCommandType()] command)
|
|
{
|
|
System.Text.StringBuilder sb = new System.Text.StringBuilder();
|
|
[if (GetInheritance([ENTITY]) == "tpc")]
|
|
[loop (ENTITY -> SuperClass as MBaseClass)]
|
|
[loop (MBaseClass -> MAttribute as ATTRIBUTE where [ATTRIBUTE.name] != [MBaseClass.name])]
|
|
[if (IsComputedAttribute([ATTRIBUTE]) == _False())]
|
|
if (entity.HasChangedas("[ATTRIBUTE.name]"))
|
|
{
|
|
sb.Append("[ConvertNameToSQLColumnName([ATTRIBUTE.name])] = :[ConvertNameToCommandParameterName([ATTRIBUTE.name])],");
|
|
|
|
[if (IsAttributeRequired([ATTRIBUTE]) == _True())]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], false);
|
|
[else]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], entity.m_[ATTRIBUTE.name] == null);
|
|
[end if]
|
|
}
|
|
[end if]
|
|
[end loop]
|
|
[end loop]
|
|
[end if]
|
|
[loop (ENTITY -> MAttribute as ATTRIBUTE where [ATTRIBUTE.name] != [ENTITY.name])]
|
|
[if (IsComputedAttribute([ATTRIBUTE]) == _False())]
|
|
|
|
if (entity.HasChanged("[ATTRIBUTE.name]"))
|
|
{
|
|
sb.Append("[ConvertNameToSQLColumnName([ATTRIBUTE.name])] = :[ConvertNameToCommandParameterName([ATTRIBUTE.name])],");
|
|
|
|
[if (IsAttributeRequired([ATTRIBUTE]) == _True())]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], false);
|
|
[else]
|
|
DAUtil.BindParameter(command, "[ConvertNameToCommandParameterName([ATTRIBUTE.name])]", [GetCSharpDatasetType([ATTRIBUTE.type],IsAttributeUnicode([ATTRIBUTE]))][SDA_GetFieldLength([ATTRIBUTE])], entity.m_[ATTRIBUTE.name], entity.m_[ATTRIBUTE.name] == null);
|
|
[end if]
|
|
|
|
}
|
|
[end if]
|
|
[end loop]
|
|
command.CommandText = command.CommandText.Replace("{COLUMNS}", sb.ToString());
|
|
}
|
|
|
|
public override void BindAssociations([ENTITY.name] entity, [GetCSharpSQLCommandType()] command)
|
|
{
|
|
[if (GetInheritance([ENTITY]) == "tpc")]
|
|
[loop (ENTITY -> SuperClass as MBaseClass)]
|
|
[loop (MBaseClass -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNERCLASS where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNERCLASS]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", entity.Internal[ConvertRoleToName([ENDROLE])]);
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", entity.Internal[ConvertRoleToName([ENDROLE])]);
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[end loop]
|
|
[end if]
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNERCLASS where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNERCLASS]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", entity.Internal[ConvertRoleToName([ENDROLE])]);
|
|
[else]
|
|
[if ([ENDROLE.multiplicity] == "0..1")]
|
|
[if (([STARTROLE.multiplicity] == "1..*") or ([STARTROLE.multiplicity] == "*") or ([STARTROLE.multiplicity] == "0..*"))]
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", entity.Internal[ConvertRoleToName([ENDROLE])]);
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
|
|
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity" ))]
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", entity.[ConvertRoleToName([ENDROLE])]);
|
|
DAUtil.BindIdParameter(command, "[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", entity.[ConvertRoleToName([STARTROLE])]);
|
|
[end loop]
|
|
[end loop]
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
end template
|
|
|
|
|
|
//***************************************************************************//
|
|
// Legenerálja egy adott entitás lekérdezéseit, összerendeléseit, //
|
|
// szétkapcsolásait. //
|
|
//***************************************************************************//
|
|
template GenerateEntityLoaders(MClass as ENTITY)
|
|
#region Mint asszociációs osztály
|
|
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
|
|
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity" ))]
|
|
[if (([STARTROLE.multiplicity] == "0..1") or ([STARTROLE.multiplicity] == "1"))]
|
|
private const string m_LoadBy[DefineRoleName([ENDROLE])]Filter = @" and ([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName("ID")]) ";
|
|
|
|
\[Obsolete("Teszteletlen, Cimby-t értesíteni kell erről, de azonnal!")\]
|
|
public bool LoadBy[DefineRoleName([ENDROLE])]([ENDCLASS.name] partner, [ENTITY.name] entity)
|
|
{
|
|
return dbhelper.LoadByPartnerId(entity, m_LoadBy[ConvertRoleToName([ENDROLE])]Filter, partner.ID);
|
|
}
|
|
|
|
[end if]
|
|
[if (([ENDROLE.multiplicity] == "0..1") or ([ENDROLE.multiplicity] == "1"))]
|
|
private const string m_LoadBy[DefineRoleName([STARTROLE])]Filter = @" and ([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = :[ConvertNameToCommandParameterName("ID")]) ";
|
|
|
|
public bool LoadBy[DefineRoleName([STARTROLE])]([STARTCLASS.name] partner, [ENTITY.name] entity)
|
|
{
|
|
return dbhelper.LoadByPartnerId(entity, m_LoadBy[DefineRoleName([STARTROLE])]Filter, partner.ID);
|
|
}
|
|
|
|
[end if]
|
|
[end loop]
|
|
[end loop]
|
|
#endregion
|
|
|
|
[loop (ENTITY -> Role as STARTROLE -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as PARTNERCLASS where (([STARTROLE.id] != [ENDROLE.id]) and GetStereoType([PARTNERCLASS]) == "Entity"))]
|
|
[if (HasAssociationClass([CURRENTASSOCIATION]) == "")]
|
|
[if ([STARTROLE.multiplicity] == "1" or [STARTROLE.multiplicity] == "0..1")]
|
|
[if ([ENDROLE.multiplicity] == "1")]
|
|
// a kapcsolómező nálunk van
|
|
private const string m_LoadBy[ConvertRoleToName([ENDROLE])]Filter = @" and ([ConvertNameToSQLTableName([ENTITY.name])].[ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName("ID")]) ";
|
|
[else]
|
|
[if ([STARTROLE.multiplicity] == "0..1" and ([ENDROLE.multiplicity] == "0..1"))]
|
|
// kapcsolótábla van
|
|
private const string m_LoadBy[ConvertRoleToName([ENDROLE])]Filter = @" and (exists (select 1 from [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))] where [ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([ENTITY.name])].ID and [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName("ID")])) ";
|
|
[else]
|
|
[if ([ENTITY.name] != [PARTNERCLASS.name])]
|
|
// kapcsolómező a másik táblában van, és nem önmagára mutat
|
|
private const string m_LoadBy[ConvertRoleToName([ENDROLE])]Filter = @" and (exists (select 1 from [ConvertNameToSQLTableName([PARTNERCLASS.name])] where [ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([ENTITY.name])].ID and [ConvertNameToSQLTableName([PARTNERCLASS.name])].ID = :[ConvertNameToCommandParameterName("ID")])) ";
|
|
[else]
|
|
// önmagára mutat
|
|
private const string m_LoadBy[ConvertRoleToName([ENDROLE])]Filter = @" and (exists (select 1 from [ConvertNameToSQLTableName([PARTNERCLASS.name])] T_TEMP where T_TEMP.[ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = [ConvertNameToSQLTableName([ENTITY.name])].ID and T_TEMP.ID = :[ConvertNameToCommandParameterName("ID")])) ";
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
|
|
public bool LoadBy[ConvertRoleToName([ENDROLE])](int id, [ENTITY.name] entity)
|
|
{
|
|
return dbhelper.LoadByPartnerId(entity, m_LoadBy[ConvertRoleToName([ENDROLE])]Filter, id);
|
|
}
|
|
|
|
[if (([STARTROLE.multiplicity] == "0..1") and ([ENDROLE.multiplicity] == "0..1"))]
|
|
private const string m_Associate[DefineRoleName([ENDROLE])]CommandText = @"
|
|
insert into [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))]
|
|
( [ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))], [ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] )
|
|
values ( :[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))], :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))] )";
|
|
|
|
public void Associate[DefineRoleName([ENDROLE])]([ENTITY.name] entity, [PARTNERCLASS.name] partner)
|
|
{
|
|
using([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(m_Associate[DefineRoleName([ENDROLE])]CommandText))
|
|
{
|
|
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", [GetCSharpSQLIDType()]).Value = entity.ID;
|
|
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", [GetCSharpSQLIDType()]).Value = partner.ID;
|
|
command.ExecuteNonQuery(); // EntityDA.tdl 207
|
|
}
|
|
}
|
|
|
|
private const string m_DeAssociate[DefineRoleName([ENDROLE])]CommandText = @"
|
|
delete from [ConvertNameToSQLTableName(ConvertAssociationRolesToSwitchTableName([ENDROLE], [STARTROLE]))]
|
|
where ([ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))])";
|
|
|
|
public void DeAssociate[DefineRoleName([ENDROLE])]([ENTITY.name] entity)
|
|
{
|
|
using([GetCSharpSQLCommandType()] command = DAUtil.CreateCommand(m_DeAssociate[DefineRoleName([ENDROLE])]CommandText))
|
|
{
|
|
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", [GetCSharpSQLIDType()]).Value = entity.ID;
|
|
command.ExecuteNonQuery(); // EntityDA.tdl 219
|
|
}
|
|
}
|
|
|
|
[end if]
|
|
[end if]
|
|
[end if]
|
|
[end loop]
|
|
[loop (ENTITY -> MAssociation as CURRENTASSOCIATION -> MAssociationEnd as STARTROLE -> MClass as STARTCLASS where (GetStereoType([STARTCLASS]) == "Entity"))]
|
|
[loop (CURRENTASSOCIATION -> MAssociationEnd as ENDROLE -> MClass as ENDCLASS where([STARTROLE.id] < [ENDROLE.id] and GetStereoType([ENDCLASS]) == "Entity" ))]
|
|
public bool LoadBy[DefineRoleName([STARTROLE])]([STARTCLASS.name] start, [ENDCLASS.name] end, [ENTITY.name] entity)
|
|
{
|
|
using ([GetCSharpSQLCommandType()] command = dbhelper.CreateEmptyQueryCommand())
|
|
{
|
|
command.CommandText += @" and ([ConvertNameToSQLColumnName(ConvertRoleToName([STARTROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]) and ([ConvertNameToSQLColumnName(ConvertRoleToName([ENDROLE]))] = :[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]) ";
|
|
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([STARTROLE]))]", [GetCSharpSQLIDType()]).Value = start.ID;
|
|
command.Parameters.Add("[ConvertNameToCommandParameterName(ConvertRoleToName([ENDROLE]))]", [GetCSharpSQLIDType()]).Value = end.ID;
|
|
|
|
return dbhelper.LoadSingleEntity(entity, command); // EntityDA.tdl 457
|
|
}
|
|
}
|
|
|
|
public bool LoadBy[DefineRoleName([ENDROLE])]([ENDCLASS.name] start, [STARTCLASS.name] end, [ENTITY.name] entity)
|
|
{
|
|
return this.LoadBy[DefineRoleName([STARTROLE])](end, start, entity);
|
|
}
|
|
|
|
[end loop]
|
|
[end loop]
|
|
end template
|
|
|
|
|
|
|