EF Core DBFirst

来源:互联网 发布:双色球红球246算法 编辑:程序博客网 时间:2024/05/18 00:31

本次环境:

  • VS2017
  • SQL SERVER 2012
  • WIN10 64位

正文

  1. 新建.NET Core项目,如果这里没有Net Core选项的说明VS2017安装时没有选择NET Core安装项.

新建.NET Core项目

  1. 安装项目所需Nuget依赖项

    包名 当时版本 备注 Microsoft.EntityFrameworkCore 2.0.0 EFCore核心 Microsoft.EntityFrameworkCore.Tools 2.0.0 Microsoft.EntityFrameworkCore.Design 2.0.0 Microsoft.EntityFrameworkCore.SqlServer 2.0.0 操作SQL SERVER Microsoft.EntityFrameworkCore.SqlServer.Design 1.1.2

    两种安装方式
    a、简单鼠标式
    打开 【管理解决方案的 NuGet 程序包】(位置:工具->NuGet 包管理器->管理解决方案的 NuGet 程序包),搜索包名,选择安装的项目,点击安装按钮.

    b、炫酷命令行
    调出【程序包管理控制台】(位置:工具->NuGet 包管理器->程序包管理控制台),选择【默认项目】,键入以下命令安装依赖.

    Install-package Microsoft.EntityFrameworkCore
    Install-package Microsoft.EntityFrameworkCore.Tools
    Install-package Microsoft.EntityFrameworkCore.Design
    Install-package Microsoft.EntityFrameworkCore.SqlServer
    Install-package Microsoft.EntityFrameworkCore.SqlServer.Design
     

    任何一种方式全部安装成功后在依赖项的NuGet中将看到安装后的包

  2. 通过数据库将生成Model
    a、调出【程序包管理控制台】,选择项目,输入以下命令 将数据库中所有表生成Model
    Scaffold-DbContext “Server=192.168.56.101; Database=EFCoreDemo;Persist Security Info=True;User ID=sa;password=12345;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models

    命令解析:
    Scaffold-DbContext “数据库连接字符串” Microsoft.EntityFrameworkCore.SqlServer -OutputDir 输出的文件夹,如无此参将生成到项目根目录
    如果只想生成某些表将使用Tables参数 如: -Tables(“table1”,”table2”,”table3”,”table4”)
    其他参数可输入 Scaffold-DbContext -? 查看帮助.

    b、生成成功后可看到Models,而且已经自动生成数据上下文”EFCoreDemoContext”

  3. 测试
    a、插入数据测试:分别插入People和Credit

b、插入数据测试:利用People和Credit有外键关系一起插入数据库,生成Model时因为外键关系 所以People对象内会有ICollection Credit 属性

c、查询,如需linq扩展方法使用需要引用using System.Linq; 如:ToList() 用到Linq扩展方法。


完结

如有错误请评论回复。

原创粉丝点击