Est-il possible dans Entity Framework de créer une méthode de conversion personnalisée pour convertir un entier en une entité via une conversion explicite? J'ai fait des recherches à ce sujet, et je ne sais pas par où commencer.Conversion explicite d'entier en entité?
Voici un exemple de ce que j'essaie de faire.
int activeTeacherId = 38;
Teacher activeTeacher = (Teacher)activeTeacherId;
Modifier 1 Après quelques recherches rapides, je me suis dit que je dois sans doute faire quelque chose avec le EntityObject si je dois tout faire pour être vraiment générique et flexible. Cependant, je ne sais pas comment.
Éditer 2 De ma propre expérience, j'ai réussi à créer le code suivant. Cependant, pour des raisons évidentes, je ne peux pas obtenir ceci dans un contexte statique. Si je pouvais juste obtenir le type de l'objet dans lequel il est converti (puisqu'il n'est pas toujours converti en EntityObject, mais parfois en Person ou en Teacher), cela fonctionnerait théoriquement.
public class EntityObject : System.Data.Objects.DataClasses.EntityObject
{
public static explicit operator EntityObject(int id)
{
var container = ModelContainer.Instance;
var thisType = this.GetType(); //this can't be done from a static context, so how do we retrieve the type that we are converting into?
var containerType = typeof (ModelContainer);
dynamic setProperty = typeof (ModelContainer).GetProperty(thisType.Name + "Set");
ObjectSet<dynamic> set = setProperty.GetValue(container);
return set.FirstOrDefault(o => o.Id == id);
}
}
Le faites-vous contre CoreFirst ou ModelFirst? –
Modèle-première conception :) –
n'est-ce pas juste une propriété de navigation? –