私はEntityFrameworkを初めて使用し、非仮想外部キーなしでデータをロードできるのに、なぜ外部キープロパティを「仮想」にする必要があるのか疑問に思っています。
私は2つのクラスを持っているとしましょう。どちらも仮想キーワードでコメントアウトされた行があります。データは仮想なしでもロードされます。では、なぜ仮想を使用する必要があるのでしょうか。Context.SaveChanges()を使用してレコードを追加/更新/削除すると、影響はありますか?
public class Application
{
public int ApplicationID{get;set;}
public string Name{get;set;}
//public virtual ICollection<ApplicationPages> Pages{get;set;}
public ICollection<ApplicationPages> Pages{get;set;}
}
public class ApplicationPages
{
public int ApplicationPageID{get;set;}
public string Name{get;set;}
public int ApplicationID{get;set;}
[ForeignKey("ApplicationID")]
public Application Application{get;set;}
//public virtual Application Application{get;set;}
}