本次环境:
- VS2017
- SQL SERVER 2012
- WIN10 64位
下文中的源码
https://gitee.com/michel4liu/EF_DBFirstDemo
正文
- 新建.NET Core项目,如果这里没有Net Core选项的说明VS2017安装时没有选择NET Core安装项.
- 安装项目所需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
中将看到安装后的包
- 通过数据库将生成
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
”
- 测试
a、插入数据测试:分别插入People
和Credit
b、插入数据测试:利用People
和Credit
有外键关系一起插入数据库,生成Model
时因为外键关系 所以People
对象内会有ICollection Credit
属性
c、查询,如需linq
扩展方法使用需要引用using System.Linq;
如:ToList()
用到Linq
扩展方法。