zoukankan      html  css  js  c++  java
  • .net core使用EFCore

    添加类库NetCoreDemo.EF

    添加引用Microsoft.EntityFrameworkCore,    Microsoft.EntityFrameworkCore.SqlServer.Design,

    Microsoft.EntityFrameworkCore.SqlServer,   Microsoft.EntityFrameworkCore.Tools四个包

    法一:

    工具-》Nuget包管理器 -》程序包管理器控制台(控制台的默认项目必须是NetCoreDemo.EF)

    使用语句

    Scaffold-DbContext -Connection "Server=127.0.0.1;Database=NetCoreDemo;Integrated Security=False;User ID=sa;Password=123456" -Provider "Microsoft.EntityFrameworkCore.SqlServer" -OutputDir Models

    即可生成数据库表对应的类,类包含在Models文件夹 内

    法二:

    将上面四个类 中的Microsoft.EntityFrameworkCore.SqlServer.Design换成Microsoft.EntityFrameworkCore.Design

    手动添加上下文类:

    public class MyDbContext:DbContext
        {
            public MyDbContext(DbContextOptions<MyDbContext> options)
               : base(options)
            {
            }
    
            public DbSet<Blog> Blog { get; set; }
            public DbSet<Post> Post { get; set; }
        }

    添加实体类

    [Table("Blog")]
        public class Blog
        {
            [Key]
            public int BlogId { get; set; }
            public string Url { get; set; }
            public virtual List<Post> Posts { get; set; }
        }
    
        [Table("Post")]
        public class Post
        {
            [Key]
            public int PostId { get; set; }
            public string Title { get; set; }
            public string Content { get; set; }
            public int BlogId { get; set; }
            public Blog Blog { get; set; }
        }

    在主项目(web项目)的startup.cs的ConfigureServices中添加

                #region 使用EF
                var connectionString = Configuration.GetConnectionString("DefaultConnection");
                services.AddDbContext<MyDbContext>(options =>
                options.UseSqlServer(connectionString));
                #endregion

    然后在它的appsetting.json里面添加连接字符串(自己定义)

    "ConnectionStrings": {
        "DefaultConnection": "Data Source=.;Initial Catalog=Blog;Integrated Security=True"
      },

    还要在主项目中加入Microsoft.EntityFrameworkCore.Design

    按法一打开控制台

    输入

    Add-Migration FirstMigration

    就可以看到EF项目中多了一个Migrations文件夹

    再输入

    update-database FirstMigration

    这里的FirstMigaration可以自定义名称,但两次的名称要求一样

    就可以实现数据库同步

    最后注意的是那四个包的版本号最好一致,否则可能会报错

    记录编程的点滴,体会学习的乐趣
  • 相关阅读:
    cocos2d-x3.x Vector
    CC_CALLBACK之间的区别
    android平台菜单返回键监听
    更方便的函数回调——Lambda
    MySQL 多实例启动和关闭脚本
    ERROR 23 (HY000) at line 29963: Out of resources when opening file
    [ERROR] Failed to open log
    ERROR 1005 (HY000): Can't create table'matrix.system_log' (errno: 150)
    show engine innodb statusG
    【转载】mysql 四种隔离级别分析
  • 原文地址:https://www.cnblogs.com/AduBlog/p/14856867.html
Copyright © 2011-2022 走看看