我是 Entity Framework 的新手,想知道为什么我的外键属性必须是“虚拟的”,即使可以在没有非虚拟外键的情况下加载数据。
可以说我有两节课。两者都有用 virtual 关键字注释掉的行。数据仍然会在没有虚拟的情况下加载。那我们为什么要使用虚拟呢?一旦我们使用 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;}
}