zoukankan      html  css  js  c++  java
  • EF学习笔记(一)

         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>

             

     

  • 相关阅读:
    【MFC初学】
    【递归】【3月周赛1】【Problem B】
    不管ACM是不是屠龙之技
    【贪心+背包】【HDU2546】【饭卡】
    【精度问题】【HDU2899】Strange fuction
    【泛化物品】【HDU1712】【ACboy needs your help】
    【递推】【HDU2585】【hotel】
    【二进制拆分多重背包】【HDU1059】【Dividing】
    【水:最长公共子序列】【HDU1159】【Common Subsequence】
    【递推+矩阵快速幂】【HDU2604】【Queuing】
  • 原文地址:https://www.cnblogs.com/cainiaoguoshi/p/3290386.html
Copyright © 2011-2022 走看看