Je tire quelques données d'une table à l'aide de Linq 2 SQL ... L'une des pièces de données est une valeur qui représente une énumération dans mon code d'application.
Quel est le moyen le plus simple de comparer les données renvoyées dans des objets LINQ et l'énumération du code de l'application. Donc, par exemple p> puis dans la méthode que j'ai p> je pourrais faire ce p> ou je pourrais stocker les noms de dénombrement dans la base de données, puis je pourrai faire ce p> y a-t-il une meilleure façon? L'ENUM n'a que deux articles et ils sont assez fixes ... pourraient peut-être avoir un troisième ou un quatrième mais ne deviendront probablement jamais au-delà de cela. Ainsi, avoir une table entière semble être une overcilleuse. P> En réalité, il s'agit d'un duplicata de C # int to Enum Conversion P> p>
5 Réponses :
Cela devrait fonctionner comme prévu - juste jeté au type de base.
item.SomeNullableInteger == (Int32)SomeEnum.First
C'est exactement ce que je cherchais ... Cela me permet également d'utiliser l'élément.SomenlullableInteger (ce qui n'est bien sûr plus un entier mais le type de dB est un entier) dans des relevés de commutation. J'ai examiné les définitions de DBML et, bien que de changer le type ... mais parce que l'énumé n'était pas dans la liste déroulante, je ne l'ai pas changé :-), je suis clairement un utilisateur de la bibliothèque et non un écrivain de la bibliothèque.
Vous pouvez lancer le Enum code> à
int code>:
La vérification du hasvalue n'est pas nécessaire, car l'opérateur de comparaisons soulevé le gère correctement.
Casting L'Enum à un Int devrait faire l'affaire. p>
Selon la documentation officielle, vous pourriez lancer votre Enum comme un INT pour comparer.
enum SomeEnum { First = 1; Second = 2; }
Ils sont en fait ... juste oublié dans le code que j'ai écrit pour la question :-)
avoir fonctionner: p>
Bon point, sauf si vous attribuez spécifiquement la valeur de l'énum. + 1 pour penser à souligner cela, cependant.
Je veux vraiment savoir comment cela compile.
Je vote cela est fermé ...