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>
  • 相关阅读:
    [转载] ASP.NET MVC (一)——深入理解ASP.NET MVC
    冒泡排序C#实现,使用委托,包括三种方式:Fun<>,匿名方法,Lambda表达式
    工厂模式怎么用?举例说明
    使用设计模式,到底有什么好处?举例说明
    百度 Echarts 地图表 js 引用路径
    移动Web
    uni-app
    微信公众号分享时,提示invalid signature,签名错误
    windows系统开放外部访问端口
    node报错Request header field Content-Type is not allowed by
  • 原文地址:https://www.cnblogs.com/enych/p/7997754.html
Copyright © 2011-2022 走看看