文献参考
MSDN EF框架官方文档
此文章完全根据微软官方文档资料,整个过程我已经在visual studio 中走了一遍,在这里将其总结下来,为以后复习所用,也为需要入门 Entity Framework 的朋友作为一个参考资料。力求准确无误。
创建模型(Model)
public class Blog
{
public int BlogId { get; set; } //这是EF默认的主键名称,ClassName+id,以便EF框架自动辨识
public string Name { get; set; }
public virtual List<Post> Posts { get; set; } //这是一个导航属性,注意virtual的用法
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; } //这个是外键,BlogId这个名称是标准的命名方法,需要注意
public virtual Blog Blog { get; set; } //这是一个导航属性,注意virtual的用法
}
说明:
1. 导航属性分别为 Blog.Posts and Post.Blog
。
2. 通过使导航属性virtual
化,确保了EF框架的延迟加载特征( Lazy Loading
feature),延迟加载意味着当访问它们时,这些属性的内容将会被自动地从数据库中加载出来。
创建上下文(context)
现在是时候定义一个派生的上下文了,它代表着同数据库(database)的一次会话(session),允许我们去查询和保存数据。我们定义一个上下文,它派生于 System.Data.Entity.DbContext
,暴露出一个泛型成员 DbSet<TEntity>
。因为要用到EF框架的类型,所以我们需要添加 EntityFramework NuGet package
,添加的方法见地址: https://msdn.microsoft.com/en-us/library/jj193542(v=vs.113).aspx,第3节。
添加命名空间 using System.Data.Entity;
,定义下面的派生类:
public cla