我正在使用 EF 创建一个 linq-to-sql 模型,并且有一个运行良好的类,但是,我希望能够对类进行添加,并且在使用 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”时访问超级“People”类的所有属性和方法。
当然这很简单,但我就是想不通!
如果有人在自动生成的 EF 模型之上实现了视图模型,我们将不胜感激。
在此先感谢,安德鲁