Возможно ли в Entity Framework создать специальный метод преобразования для преобразования целого числа в сущность посредством явного преобразования?
Я провел некоторые исследования по этому вопросу, и я не знаю, с чего начать.
Вот пример того, что я пытаюсь сделать.
int activeTeacherId = 38;
Teacher activeTeacher = (Teacher)activeTeacherId;
Редактировать 1 После небольшого исследования я понял, что мне, вероятно, нужно что-то сделатьс EntityObject, если мне нужно, чтобы все было по-настоящему универсальным и гибким.Однако я не уверен, как это сделать.
Редактировать 2 Исходя из собственного опыта, мне удалось создать следующий код.Однако по понятным причинам я не могу получить «это» в статическом контексте.
Если бы я мог просто каким-то образом получить тип объекта, в который он преобразуется (поскольку он не всегда преобразуется в объект EntityObject, но иногда это был человек или учитель), то это теоретически сработало бы.*
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);
}
}