2009-12-02 8 views
0

Je suis nouveau sur T4 mais j'ai trébuché dessus et cela me semble très utile. J'essaie de générer des classes DA simples et j'ai besoin de conseils sur une partie particulière de mon code.Utilisation de Microsoft T4 pour créer des classes d'accès aux données

Comment puis-je générer le code suivant étant donné que je l'ai déjà le nom de table et les noms de colonnes (dans ce tableau de cas « Accords » et colonnes « AgreementId », « contactID », etc.)?

if ((ordinal_TableName_ColumnName1 == -1) 
|| (ordinal_TableName_ColumnName2 == -1) 
|| (ordinal_TableName_ColumnName3 == -1) 
|| (ordinal_TableName_ColumnName4 == -1)) 

// Not interested in below 
{ 
    SetOrdianls(reader); 
} 

while (reader.HasRows()) 
{ 
    returnCollection.Add(new Entity(reader); 
} 

La valeur -1 est la valeur par défaut et provoque l'échec de la condition.

Les valeurs ordinales sont simplement des valeurs entières statiques se référant à un emplacement dans certains résultats DataReader. Ils sont définis à l'aide de la méthode SetOrdinals (lecteur DataReader).

Merci Anthony

+0

Je pense que vous n'êtes pas obtenir des réponses parce que votre question n'est pas claire. Nous ne savons pas ce que sont les ordinal_etcs ou ce que -1 signifie dans ce cas. Peut-être plus de détails sur ce que vous essayez de faire plutôt que sur le code? – Will

+0

Question n'est pas claire, pas assez de détails – Maslow

+0

Je sais qu'il est en retard, mais j'ai modifié la question pour inclure plus d'informations et de description. –

Répondre

0

Figured la réponse à.

for(int i = 0; i < table.Columns.Count; i++) 
{ 
    Write(string.Format("(ordinal_{0}_{1}.HasValue)", table.Name, table.Columns[i].Name)); 
    if(i < (table.Columns.Count - 1)) 
    { 
     WriteLine(" ||"); 
    } 
} 

Merci, Ant