Nous utilisons le cadre de première entité de code de Miscrosoft (4.1) pour mapper vers une base de données existante. Nous voulons être en mesure de changer les types de données et les valeurs de certaines propriétés qui correspondent à un avec une table. Par exemple, il existe une colonne sur la table qui détermine si un enregistrement est en cours. C'est une colonne entière, et a des valeurs 1 ou 2. Nous ne voulons pas changer la base de données car il y a beaucoup d'applications différentes qui récupèrent des données de cette colonne, mais ce serait sympa pour notre code d'avoir cette classe table a une propriété booléenne IsActive, qui renvoie true si la colonne de la table est 1 et false dans le cas contraire. Existe-t-il un moyen de configurer le travail EnityFrame afin que nous puissions définir ce mappage directement sans avoir deux propriétés sur la classe réelle, une pour la colonne entière (mappée à la base de données) et une propriété booléenne calculée à partir de l'autre? Puis-je mapper la propriété booléenne directement à la colonne entière?Code First Entity Framework
2
A
Répondre
1
La réponse simple est non. EF est totalement stupide dans ce domaine et il manque complètement le mapping de type simple. Cela signifie que vous ne pouvez pas modifier le type de propriétés scalaires et que votre classe doit en effet travailler avec cette propriété int en utilisant les valeurs 1 et 2 pour définir votre IsActive
.
La solution peut être:
public class YourClass
{
public int IsActiveValue { get; set; }
[NotMapped]
public bool IsActive
{
get { return IsActiveValue == 2; }
set { IsActiveValue = value ? 2 : 1; }
}
}
Cette solution présente quelques inconvénients
- Vous devez avoir deux propriétés et
IsActvieValue
doivent être visibles au contexte - Vous ne pouvez pas utiliser
IsActive
dans LINQ to -entités requêtes
Questions connexes
- 1. EntityDataSource avec Code-First Entity Framework 4.1
- 2. Entity Framework Code-First est très lent
- 3. Entity Framework 6 Code First Concurrency
- 4. Entity Framework Code First + MySQL ... NullReferenceException
- 5. Comment utiliser Entity Framework code-first
- 6. Entity Framework 4.1 Code First Freeze
- 7. Entity Framework Code-First: Comment concevoir?
- 8. Code First Entity Framework interdit l'accès à la table
- 9. Entity Framework Code First - Définir les relations/clés
- 10. Entity Framework Code-First - Définition des relations avec MembershipUser
- 11. Entity Framework Code First: Comment mapper des champs privés?
- 12. Entity Framework Code First - Configuration dans un autre fichier
- 13. Désactivation de l'identité temporaire - Entity Framework 4.1 Code First
- 14. Entity Framework + Héritage multi-niveaux + Code EF first
- 15. Entity Framework 4.1 Code First Override Conventions Confusion
- 16. Code-First Entity Framework insertion de données avec ID personnalisé
- 17. Comment utiliser ENUMS dans Code First of Entity Framework 4.3 +?
- 18. Entity Framework Code First: mappage personnalisé à l'aide d'un attribut?
- 19. Entity Framework 4 & Code First CTP 5 - Clé manquante
- 20. Entity Framework 4 Code First et new() Opérateur
- 21. Entity Framework Code First Liaison de tables ensemble clé étrangère
- 22. Entity Framework Code First: Comment modéliser une relation client/adresse?
- 23. Entity Framework Code-First - Définir la clé pour cet EntityType
- 24. Code First Entity Framework 4: échec de l'authentification SQL
- 25. Entity Framework Code First 3 classes des propriétés identiques
- 26. Étrange mise à jour d'entité dans Entity Framework Code-First
- 27. Comment précompiler une requête Entity Framework Code-First?
- 28. Mappage avec le framework d'entité "code first"
- 29. Déployer Entity Framework Code Premier
- 30. Entities Framework 4 Code First: Inheritance