• code First


    项目右键 管理NuGet 程序包 ; 添加EntityFramework ef框架

    编写BookDB类;继承DbContext

    public  class BookDB:DbContext
        {
            public BookDB()
            {
                //初始化自动迁移 //当实体类发生变化时自动映射到数据库(可能会造成数据库丢失)
                Database.SetInitializer(
                    new MigrateDatabaseToLatestVersion<BookDB, Configuration>()
                    );
            }
            public DbSet<Book> Book { get; set; }
            //默认生成的表名为类型的复数形式,表名+s
            protected override void OnModelCreating(DbModelBuilder mode1Builder)
            {
                mode1Builder.Conventions.Remove<PluralizingTableNameConvention>();
            }
        }
        public class Configuration : DbMigrationsConfiguration<BookDB> 
        {
            public Configuration()
            {
                //开启自动迁移
                AutomaticMigrationsEnabled = true;
                //迁移的时候是否允许数据丢失
                AutomaticMigrationDataLossAllowed = true;
            }
        }

    //
    Configuration自定义类
    
    

     Book类

     public class Book
        {
            public int BookID { get; set; } //创建主键 加[Key] 或者  字段名是类名+ID  或者 ID开头
            [StringLength(50)]
            public string BookName { get; set; }
            [StringLength(50)]
            public string Author { get; set; }
            public decimal Price { get; set; }
    
        }

    配置文件添加

    <connectionStrings>
    <add name="BookDB" connectionString="server=.;uid=sa;pwd=123321;database=xxx" providerName="System.Data.SqlClient"/>  xxx为数据库名字
    </connectionStrings>

      <add name="MovieDBContext" connectionString=" Data Source=.; Initial Catalog=MovieDB; Persist Security Info=True; User ID=test;Password=. " providerName="System.Data.SqlClient"/> 

    BookDB entiy = new BookDB();  //创建对象不自动创建数据库
     int Count = entiy.Book.Count(); //使用才创建数据库

    出错原因是因为继承了Context

        public class BookDBContext : DbContext //如果继承自Context 不会有savecharge方法
        {
            public DbSet<Book> Books { get; set; } //必须引用EntityF才能使用(在管理Nuget程序包或第三方)
        }
    在configuration添加连接字符串
    <configuration>
         <!--数据库名为BookDB name名字必须和上下文一致,否则不会创建数据库-->
      <connectionStrings>
        <add name="BookDBContext" connectionString="server=.;uid=test;pwd=.;database=BookDB" providerName="System.Data.SqlClient"/> 
      </connectionStrings>
    </configuration>
  • 相关阅读:
    HDU 5360 Hiking(优先队列)2015 Multi-University Training Contest 6
    多区域显示(6)-版面布局
    静态变量和成员变量的区别 && 成员变量和局部变量的区别
    java基础学习_面向对象(上)02_day07总结
    java基础学习_面向对象(上)01_day07总结
    面向对象的概述
    面向对象思想的引入
    Failed to create the Java Virtual Machine(zt)
    eclipse web开发Server配置
    javamail接收邮件(zt)
  • 原文地址:https://www.cnblogs.com/enych/p/7997754.html
Copyright © 2020-2023  润新知