Entity Framework 中的导航属性有什么作用?
What do navigation properties do in Entity Framework?
我使用 EF6,这些是我的 POCO。
public class Author
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Book
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
public int Year { get; set; }
public decimal Price { get; set; }
public string Genre { get; set; }
// Foreign Key
public int AuthorId { get; set; }
// Navigation property
public Author Author { get; set; }
}
- 导航有什么意义属性
Author
?
- 制作 属性
virtual
有什么意义?
- 导航属性是否特定于 Entity Framework?
编辑:经过更多研究,我发现 this thread,这很好地回答了我的第一个问题。
有人可以帮忙解决最后两个问题吗?
2:如果你做虚拟导航属性然后将工作这个 属性:
的延迟加载值
public class Book
{
//...
public int AuthorId { get; set; }
public virtual Author Author { get; set; }
}
有效:EF 为您的实体(书籍)创建代理并覆盖导航 属性(作者)。当您加载导航 属性(作者)的数据库值的实体(书籍)时,不会加载。只有第一个获取导航值属性(Author),才会加载(http://blogs.msdn.com/b/adonet/archive/2009/12/22/poco-proxies-part-1.aspx).
3:固有的导航属性并不特定于 Entity Framework。这 link 到其他实体。但是术语 "navigation properties" 特定于 EF。
我使用 EF6,这些是我的 POCO。
public class Author
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Book
{
public int Id { get; set; }
[Required]
public string Title { get; set; }
public int Year { get; set; }
public decimal Price { get; set; }
public string Genre { get; set; }
// Foreign Key
public int AuthorId { get; set; }
// Navigation property
public Author Author { get; set; }
}
- 导航有什么意义属性
Author
? - 制作 属性
virtual
有什么意义? - 导航属性是否特定于 Entity Framework?
编辑:经过更多研究,我发现 this thread,这很好地回答了我的第一个问题。
有人可以帮忙解决最后两个问题吗?
2:如果你做虚拟导航属性然后将工作这个 属性:
的延迟加载值public class Book
{
//...
public int AuthorId { get; set; }
public virtual Author Author { get; set; }
}
有效:EF 为您的实体(书籍)创建代理并覆盖导航 属性(作者)。当您加载导航 属性(作者)的数据库值的实体(书籍)时,不会加载。只有第一个获取导航值属性(Author),才会加载(http://blogs.msdn.com/b/adonet/archive/2009/12/22/poco-proxies-part-1.aspx).
3:固有的导航属性并不特定于 Entity Framework。这 link 到其他实体。但是术语 "navigation properties" 特定于 EF。