zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    How To Install MySQL on Ubuntu 16.04
    Rabbitmq vs. kafka
    Expanded encryption and decryption signature algorithm SM2 & SM3
    Open Source CRM
    在WIN10打造成能运行Oracle的JDK的Linux
    Spring Cloud Zipkin
    Debian中APT的前世今生
    nginx for Windows Known issues:path
    Ajax cross domain
    JQuery Cross Domain Ajax(jsonp)
  • 原文地址:https://www.cnblogs.com/enych/p/7997754.html
Copyright © 2011-2022 走看看