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

原文地址:https://www.cnblogs.com/szfBlogs/p/5277185.html