Entity Framework生成DataBase First模式

一、新建控制台应用程序,然后右键->添加新建项,选择数据里面的实体数据模型:

Entity Framework生成DataBase First模式_第1张图片

然后点击添加

二、选择来自数据库的EF设计器,并点击下一步

Entity Framework生成DataBase First模式_第2张图片

三、在实体数据模型向导界面选择要使用的数据连接,或者点击新建连接按钮创建新的连接,这里选择已有的连接,并点击下一步:

Entity Framework生成DataBase First模式_第3张图片

四、选择实体框架6.0,点击下一步:

Entity Framework生成DataBase First模式_第4张图片

五、选择要操作的表,并点击完成:

Entity Framework生成DataBase First模式_第5张图片

六、查看生成的项目结构

Entity Framework生成DataBase First模式_第6张图片

自动添加了EntityFramework的引用。同时会在项目的根目录下面生成一个package文件夹:

package文件夹里面存放的是与EntityFramework有关的文件:

查看生成的配置文件:

Entity Framework生成DataBase First模式_第7张图片

ConfigSections节点里面有一个section段的name为entityFramework,下面有一个节点的名称就是该section段name的值。如果想在其他地方使用EF的配置信息,那么需要把configSections、connectionStrings、entityFramework三个节点都需要拷贝过去,并且configSections节点是在所有节点的最前面。

七、查看生成的edmx文件

1、查看.tt下面的文件

Entity Framework生成DataBase First模式_第8张图片

.tt文件下面生成的就是数据库表对应的实体类,并且是但是形式的。

2、查看.edmx文件

在edmx文件上面右键选择打开方式,选择XML(文本)编辑器方式打开:

Entity Framework生成DataBase First模式_第9张图片

文件的整个结构如下:



  
  
    
    
      
        
          
            
          
          
          
          
          
          
          
        
        
          
        
      
    
    
    
      
        
          
            
          
          
          
          
          
          
          
        
        
          
        
      
    
    
    
      
        
          
            
              
                
                
                
                
                
                
              
            
          
        
      
    
  
  
  
    
      
        
      
    
    
      
        
        
        
        
        
      
    
    
    
  

其中SSDL content定义的是数据库表的结构:

Entity Framework生成DataBase First模式_第10张图片

CSDL content定义的是实体类的结构:

Entity Framework生成DataBase First模式_第11张图片

C-S mapping content定义的是实体类和数据库表的映射关系:

Entity Framework生成DataBase First模式_第12张图片

从C-S mapping content节点中可以看出,EF为什么会自动生成实体类,或者通过实体类为什么能操作数据库的数据了。

从这里可以看出EF做的第一件事情:取数据库的数据表结构,生成实体类,在表和实体之间自动建立映射关系。

3、StudentManager.tt是T4模板,是用来生成实体类的模板。

T4模板:从edmx中取数据结构,按照模板生成对应格式的实体类。

4、StudentManager.Context.cs文件

//------------------------------------------------------------------------------
// 
//     此代码已从模板生成。
//
//     手动更改此文件可能导致应用程序出现意外的行为。
//     如果重新生成代码,将覆盖对此文件的手动更改。
// 
//------------------------------------------------------------------------------

namespace EFDbFirstDemo
{
    using System;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    
    public partial class StudentSystemEntities : DbContext
    {
        public StudentSystemEntities()
            : base("name=StudentSystemEntities")
        {
        }
    
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }
    
        public virtual DbSet Students { get; set; }
    }
}

StudentSystemEntities继承自DbContext,用来操作数据库。

到此这篇关于Entity Framework生成DataBase First模式的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

你可能感兴趣的:(Entity Framework生成DataBase First模式)