EFを使用してlinq-to-sqlモデルを作成していて、正常に機能するクラスがありますが、EFで変更を加えたときにクラスに追加して上書きされないようにしたいので、私は信じていますビュークラスの2番目のレイヤーを使用する必要があります。
ので、私は持っています:
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モデルの上に誰かがビューモデルを実装した例のように、この問題に関する支援をいただければ幸いです。
よろしくお願いします、アンドリュー