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

  • 相关阅读:
    关于阿里云centos 2.6下手机表情输入后无法保存到mysql数据库的问题调研及mysql版本从5.1升级到5.7的全过程纪要
    EXTJS 5 学习笔记2
    EXTJS 5 学习笔记1
    关于java.lang.String理解中的一些难点
    关于centos7中使用rpm方式安装mysql5.7版本后无法使用root登录的问题
    大数据专栏
    过采样中用到的SMOTE算法
    linux后台执行命令:&和nohup
    P,R,F1 等性能度量(二分类、多分类)
    word2vec模型cbow与skip-gram的比较
  • 原文地址:https://www.cnblogs.com/szfBlogs/p/5277185.html
Copyright © 2011-2022 走看看