Chaînes LINQ to SQL en énumérations
-
08-06-2019 - |
Question
LINQ to SQL permet aux mappages de tables de se convertir automatiquement en énumérations en spécifiant le type de la colonne - cela fonctionne pour les chaînes ou les entiers.
Existe-t-il un moyen de rendre la conversion insensible à la casse ou d'ajouter une classe de mappage personnalisée ou une méthode d'extension dans le mix afin que je puisse spécifier plus en détail à quoi devrait ressembler la chaîne.
Les raisons de cela pourraient être de fournir une convention de dénomination plus agréable dans un nouveau code C# génial dans un système où le schéma de données est déjà défini (et est utilisé par certaines applications héritées) afin que le texte réel de la base de données puisse ' ne doit pas être changé.
La solution
Vous pouvez toujours ajouter une classe partielle portant le même nom que votre classe LinqToSql, puis définir vos propres paramètres et fonctions.Ceux-ci seront alors accessibles en tant que paramètres et méthodes d'objet pour cet objet, de la même manière que les méthodes LinqToSql générées automatiquement sont accessibles.
Exemple:Vous disposez d'une classe LinqToSql nommée Car
qui correspond à la table Car dans la base de données.Vous pouvez ensuite ajouter un fichier à App_Code contenant le code suivant :
public partial class Car {
// Add properties and methods to extend the functionality of Car
}
Je ne sais pas si cela répond totalement à votre exigence de changer la façon dont les énumérations sont mappées dans une colonne.Cependant, vous pouvez ajouter un paramètre dans lequel les propriétés get/set fonctionneront pour mapper les énumérations dont vous avez besoin tout en gardant les choses insensibles à la casse.