zoukankan      html  css  js  c++  java
  • Entity Framework code first 基本操作

    0.准备工作

    nuget添加entity framework程序集到项目中;

    1.正式开始

    配置文件添加连接字符串:

    <connectionStrings>
        <add name="CmsConnection" connectionString="data source=.;database=CMS;uid=sa;pwd=********;" providerName="System.Data.SqlClient"/>
      </connectionStrings>

    添加实体模型:

    namespace Model
    {
        public class Class
        {
            public int ClassId { get; set; }
            public string ClassName { get; set; }
            public string Description { get; set; }
            public DateTime? CreateDateTime { get; set; }
            public DateTime? UpdateDateTime { get; set; }
        }
    }

    添加上下文文件:

    public class MyDbContext : DbContext
        {
            public MyDbContext()
                : base("CmsConnection")//配置文件字符串名称
            {
            }
    
            public DbSet<Model.Class> Classes { get; set; }
        }

    添加执行代码:

    /// <summary>
            /// 初始化最简单的单表操作
            /// </summary>
            private static void InitSingleTable()
            {
                Model.Class classes = new Class()
                {
                    ClassId = 1,
                    ClassName = "1020561",
                    Description = "desc",
                    CreateDateTime = DateTime.Now,
                    UpdateDateTime = DateTime.Now
                };
                MyDbContext context = new MyDbContext();
                context.Classes.Add(classes);
                context.SaveChanges();
                Console.WriteLine("ok");
                Console.Read();
            }

    运行结果:

    image

    注意:

    1、数据库名称:为配置文件中连接字符串的数据库名称;

    2、数据库表名称:为实体名称的复数形式;

    3、以id结尾的字段作为主键,若为int类型,则自动增长;

    4、字段类型:string转换为nvarchar(max)、bool转换为bit;

    5、生成表:__MigrationHistory,用于记录数据库表结构迁移情况;

    重建表结构:

    //Database.SetInitializer(new CreateDatabaseIfNotExists<MyDbContext>());//默认
    //Database.SetInitializer(new DropCreateDatabaseAlways<MyDbContext>());//始终全部重构
    Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDbContext>());//检测到模型发生变化时候重构
    MyDbContext context = new MyDbContext();
    context.Database.Initialize(true);

    问题:每次重构的时候,必须要关闭数据库连接,才能执行成功;/(ㄒoㄒ)/~~

  • 相关阅读:
    Python3全栈学习目录
    五句话搞定javavscript作用域
    Python线程池
    luogu4016 负载平衡问题
    luogu2756 飞行员配对方案问题
    luogu1251 餐巾计划问题
    luogu3386 【模板】二分图匹配 匈牙利算法 hdu2063 过山车 dinic
    luogu3381 【模板】最小费用最大流
    luogu3376 【模板】网络最大流 dinic
    luogu2740 [USACO4.2]草地排水Drainage Ditches 最大流EK
  • 原文地址:https://www.cnblogs.com/szfBlogs/p/5277185.html
Copyright © 2011-2022 走看看