Я создаю модель linq-to-sql с EF, и у меня есть класс, который работает хорошо, однако я хочу иметь возможность добавлять дополнения к классу и не перезаписывать их при внесении изменений в EF, поэтому Я считаю, что мне нужно использовать второй слой класса представления.
Итак, у меня есть:
public partial class People: INotifyPropertyChanging, INotifyPropertyChanged {...} // created by EF
тогда хотите сделать:
public partial class ViewPeople: People {
public String someFunction() {...} // additional functionality
}
однако, когда я пытаюсь привести из People в ViewPeople, используя код ниже, я получаю исключение:
Невозможно привести объект типа «Namespace.Models.People» к «Namespace.Models.ViewPeople»
Код:
//select the person
NSDataContext dc = new NSDataContext(); // to get to the data context and models froM EF
var person = (from p in dc.Peoples where p.id == personID select p).First();
// pass model to view
return View((ViewPeople)person)
Если я просто прохожу через человека, я получаю доступ ко всем свойствам и методам "Люди"
Когда я изменяю класс ViewPeople, я получаю доступ ко всем свойствам и методам суперкласса «Люди» при обращении к «this».
Конечно, это что-то простое, но я просто не могу понять!
Буду признателен за любую помощь в этом вопросе, как пример того, где кто-то внедрил модели представления поверх автоматически генерируемых моделей EF!
Заранее спасибо,
Andrew