EF(EntityFramwork)实体框架:主要是将实体类(EntityClass)和数据表(Table)进行映射(Map)。

     EF核心对象:

  • DbContext   (数据访问核心对象)       

               DbContext的构造函数

    •  public EFContext()

    连接的数据库名与类名相同,为EFContext,这是一种约定俗成

      • public EFContext(): base("dbname") 

       连接的数据库名为传入的参数

        • public UnicornsContext():base("name=dbname")

                          数据连接信息为webconfig中的connectionStrings节点下的为dbname的连接字符串

          DbContext所有数据库实体和映射关系都要在DbContext进行注册

                    

          public DbSet<School> Schools { get; set; }
        
                protected override void OnModelCreating(DbModelBuilder modelBuilder)
                {
                    modelBuilder.Configurations.Add(new SchoolMap());
                }
        •  Database   (数据库对象)   

                  Database是通过EntityContext.Database进行访问的

                  

         DbCommand command = Database.Connection.CreateCommand();
                    command.Parameters.AddRange(parameters);
                    command.CommandType = CommandType.Text;
                    command.CommandText = query;
        
                    if (Database.Connection.State != ConnectionState.Open) Database.Connection.Open();
        
                    using (command)
                    using (IDataReader reader = command.ExecuteReader(CommandBehavior.CloseConnection)) //当DataReader对象被释放掉以后,数据库连接会自动关闭
                    {
                        command.Parameters.Clear();
                        return new EntityDataTable(reader);
                    }

         

                  可以访问connection,并且可以dbcommand执行sql命令

                    Database.ExecuteSqlCommand(sql):执行sql语句,一般用户更新表

                    Database.SqlQuery<T>(sql)或Database.SqlQuery(sql):执行sql,并将执行结果返回成IEnumerable对象

        DbSet<TEntity>    

        •  DbSet<TEntity>(表对象)   

                 Table.SqlQuery(sql):执行一段sql返回DbSqlQuery<TEntity>对象,可以.toList()成List<TEntity>

                 

         

        相关文章:

        • 2022-01-07
        • 2022-12-23
        • 2021-06-22
        • 2021-11-12
        • 2021-12-22
        • 2021-10-25
        • 2021-08-08
        猜你喜欢
        • 2021-08-28
        • 2022-12-23
        • 2021-11-29
        • 2021-08-20
        • 2022-12-23
        • 2022-12-23
        相关资源
        相似解决方案