2010-11-14 6 views
0

J'utilise LINQ to SQL dans Visual Studio 2010 avec C#.nom d'un attribut dans le datacontext (linq to sql)

je le tableau suivant avec des attributs tels que:

table abacus(
    a0 float 
    a1 float 
    a2 float 
    .....) 

Puis-je récupérer le second attribut (a1) et renvoie une valeur de chaîne avec une commande de la DataContext?

Je pense à quelque chose comme cxt.ABACUSs.GetAttribut(2) ->a1.

Répondre

0

Je ne sais pas si je comprends ce que vous cherchez .....

Pour sélectionner une ligne de votre table, utilisez:

var row = ctx.ABACUSs.FirstOrDefault(a => a.ID = 5); // or whatever 

Ensuite, lorsque vous avez cet élément, vous peut lire ses propriétés - la colonne a1 doit être transformé en une propriété a1 sur cet objet:

// check for != null just to be safe.... 
if(row != null) 
{ 
    var yourResult = row.a1; 
} 

les tables sont toujours organisées en lignes et colonnes - vous devez d'abord sélectionner une ligne dans Linq-to-SQL, la transformer en un objet, puis vous pouvez inspecter/lire les propriétés de cet objet (qui correspondent aux colonnes de votre table). Puisque vous récupérez des objets (instances d'objets) pour chaque ligne de Linq-to-SQL, qui ont des propriétés (que vous lisez par leur nom), il n'y a pas de notion de "second attribut" comme dans un SqlDataReader. Vous ne pouvez pas obtenir "le deuxième attribut de cette rangée" - vous devez connaître son nom.

Ou qu'est-ce que vous essayez exactement de réaliser ???

0

Ma solution consistera à créer une classe pour créer des requêtes linq. Un List<string> sera utilisé pour stocker les noms des attributs qui seront utilisés pour créer une requête.

0

Vous pouvez écrire une méthode qui sélectionne la colonne à sélectionner en fonction de l'index donné.