• 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ㄒ)/~~

  • 相关阅读:
    python time库
    python urllib.request
    python random库
    python3中post请求 json 数据
    python3 中post处理json 数据
    python3中post和get请求处理
    ThinVnc-身份验证绕过(CVE-2019-17662)
    python3 获取博彩网站页面下所有域名(批量)
    Apache Solr Velocity模板注入RCE漏洞复现
    宽字节注入和防御
  • 原文地址:https://www.cnblogs.com/szfBlogs/p/5277185.html
Copyright © 2020-2023  润新知