2008-12-11 13 views

Répondre

1

Si c'est juste un identifiant et un nom, je fais généralement ceci:

public enum FootScent : int 
{ 
Unknown = 0, 
Mild = 1, 
Sweaty =2, 
SteppedInSomething = 3 
} 

puis sur la propriété de l'entité LINQ:

[Column("foot_scent_id", DbType = "Int NOT NULL")] 
public FootScent Scent { get; set; } 

Pour les tables de consultation avec des colonnes autres que "id" et "nom" qui sont nécessaires, je fais juste une entité LINQ normale pour eux, mais en fonction de votre implémentation, il serait probablement utile de les mettre en cache pour minimiser les déplacements vers la base de données.

+0

Savez-vous s'il est possible d'avoir une classe personnalisée en tant que type de colonne? Par exemple, si j'avais une classe FootScent, puis les sous-classes FootScentUnknown, FootScentMild, etc? –

+0

Vous pouvez, mais je crois que c'est un peu plus compliqué et implique un chargement paresseux. Je préfère utiliser l'identifiant et garder un dictionnaire (Dictionary ) en cache. Vous pouvez ensuite ajouter une propriété (non-linq) qui retourne simplement l'objet FootScent basé sur la propriété FootScentId (linq) –

+0

Comment la mise en cache serait-elle implémentée? Je n'ai jamais rien fait de tel. Je suis encore assez nouveau à LINQ. –

Questions connexes