.net core 使用 ef core
第一步: 创建一个.net core console app。
第二步:安装EFCore package 和 design(以前vs是有EF项目模板的,core版本现在没有,所有安装这个工具来创建ModelsType Context等).
工具-->Nuget包管理器-->程序包管理控制台
1.Install-package microsoft.entityframeworkcore.sqlserver
2.Install-package microsoft.entityframeworkcore.sqlserver.design
3.Install-Package Microsoft.EntityFrameworkCore.Tools –Pre (-Pre应该是预览版的意思)
第三步:使用工具的scaffold-dbcontext(数据库上下文脚手架)指令来生成models和context。
Nuget包管理器里面:PM
PM>Scaffold-DbContext "Data Source=.;Initial Catalog=database1;User ID=sa;Password=123456" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Model
指令详细介绍:
Scaffold-DbContext [-Connection] <String> [-Provider] <String> [-OutputDir <String>] [-Context <String>]
[-Schemas <String>] [-Tables <String>] [-DataAnnotations] [-Force] [-Project <String>]
[-StartupProject <String>] [-Environment <String>] [<CommonParameters>]
PARAMETERS
-Connection <String>
Specifies the connection string of the database.
-Provider <String>
Specifies the provider to use. For example, Microsoft.EntityFrameworkCore.SqlServer.
-OutputDir <String>
Specifies the directory to use to output the classes. If omitted, the top-level project directory is used.
-Context <String>
Specifies the name of the generated DbContext class.
-Schemas <String>
Specifies the schemas for which to generate classes.
-Tables <String>
Specifies the tables for which to generate classes.
-DataAnnotations [<SwitchParameter>]
Use DataAnnotation attributes to configure the model where possible. If omitted, the output code will use only the fluent API.
-Force [<SwitchParameter>]
Force scaffolding to overwrite existing files. Otherwise, the code will only proceed if no output files would be overwritten.
覆盖已经有的文件,重新拉取数据库的表生成model
-Project <String>
Specifies the project to use. If omitted, the default project is used.
-StartupProject <String>
Specifies the startup project to use. If omitted, the solution's startup project is used.
-Environment <String>
Specifies the environment to use. If omitted, "Development" is used.
本文实例:
Scaffold-dbcontext "Server=192.168.1.159;database=SGD.Invest;Integrated Security=false;user id=****;password=*****" Microsoft.EntityFrameworkCore.SqlServer -outputdir /filepath/Models -Force
Integrated Security(是否集成认证 windows账户认证的意思)
第四步:上面我们已经看到Context文件已经生成,只需要生成它的实例就可以使用了。
附:
配置dbcontext的官方文档:https://docs.microsoft.com/en-us/ef/core/miscellaneous/configuring-dbcontext
第五步:
-OutputDir Models: 生成的文件的存放目录,目前目录是根目录下的Models目录
之后引擎会试图连接你的SQL Server 数据库,并生成文件在你指定的目录里。
在目录中找到一个***Context.cs并打开它,你会发现一个如下方法,
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer(@"{your sql connect string}");
}
如自动生成代码里所写的warning一样,我们不应该把连接字符串放在这里。接下来的工作,让我们来从appsettings.json中读取配置。
在/Models/***Context.cs中添加一个属性用来存放ConnectionString,另外我们需要重写OnConfiguring方法【注释原来方法】,完整的代码应该是这样:
public static string ConnectionString { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(ConnectionString);
}
打开appSetting.json,添加如下代码:
"ConnectionStrings": {
"TestNetCoreEF": "Data Source={your sql server host address};Initial Catalog=TestNetCoreEF;user id={your username};password={your password};"
},
打开 Startup.cs,在ConfigureServices(IServiceCollection services)方法中添加如下代码:
TestNetCoreEFContext.ConnectionString = Configuration.GetConnectionString("TestNetCoreEF");
完整的代码应该是这样:
public void ConfigureServices(IServiceCollection services)
{
//config the db connection string
TestNetCoreEFContext.ConnectionString = Configuration.GetConnectionString("TestNetCoreEF"); // Add framework services.
services.AddMvc();
} 之后的调用和ef一样,
.net core 使用 ef core的更多相关文章
- net Core 通过 Ef Core 访问、管理Mysql
net Core 通过 Ef Core 访问.管理Mysql 本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1. ...
- asp.net core + mysql + ef core + linux
asp.net core + mysql + ef core + linux 以前开发网站是针对windows平台,在iis上部署.由于这次需求的目标服务器是linux系统,就尝试用跨平台的.NET ...
- Entity Framework Core(EF Core) 最简单的入门示例
目录 概述 基于 .NET Core 的 EF Core 入门 创建新项目 更改当前目录 安装 Entity Framework Core 创建模型 创建数据库 使用模型 基于 ASP.NET Cor ...
- .net core webapi+EF Core
.net core webapi+EF Core 一.描述: EF Core必须下载.net core2.0版本 Micorsoft.EntityFrameworkCore:EF框架的核心包Micor ...
- 【ASP.NET Core】EF Core - “影子属性” 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1
[ASP.NET Core]EF Core - “影子属性” 有朋友说老周近来博客更新较慢,确实有些慢,因为有些 bug 要研究,另外就是老周把部分内容转到直播上面,所以写博客的内容减少了一点. ...
- 一个官翻教程集合:ASP.NET Core 和 EF Core 系列教程
通过一个大学课程案例讲解了复杂实体的创建过程及讲解 1.ASP.NET Core 和 Entity Framework Core 系列教程——入门 (1 / 10) 2.ASP.NET Core 和 ...
- ASP.NET CORE 使用 EF CORE访问数据库
asp.net core通过ef core来访问数据库,这里用的是代码优先,通过迁移来同步数据库与模型. 环境:vs2017,win10,asp.net core 2.1 一.从建立asp.net c ...
- [.NET Core] - 使用 EF Core 的 Scaffold-DbContext 脚手架命令创建 DbContext
Scaffold-DbContext 命令 参数 Scaffold-DbContext [-Connection] <String> [-Provider] <String> ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- Asp.net Core 通过 Ef Core 访问、管理Mysql
本文地址:http://www.cnblogs.com/likeli/p/5910524.html 环境 dotnet Core版本:1.0.0-preview2-003131 本文分为Window环 ...
随机推荐
- linux 生成密钥,并向git服务器导入公钥
1. server1 上使用haieradmin用户 ,先清理之前的ssh登录记录,rm –rf ~/.ssh , 运行ssh-keygen –t rsa(只需回车下一步即可,无需输入任何密 ...
- 【转】Sqlserver将数据从一个表插入到另一个表
-- 复制表结构CREATE TABLE empty_table_name LIKE table_name; --根据table_name创建一个空表empty_table_name,empty_ta ...
- 改写pipeline
为什么要改写方法:get_media_requests,他们的区别在哪里 def get_media_requests(self, item, info):#原始的 return [Request(x ...
- 实现Runnable接口创建多线程及其优势
实现Runnable接口创建多线程: 创建一个Runnable接口的实现类RunnableImpl: 主线程中: 其中,链式编程的Thread类的静态方法currentThread方法点getName ...
- 看懂MSSQL执行计划,分析SQL语句执行情况
打开SQL执行计划窗口 执行计划的图表是从右向左看的 SQL Server有几种方式查找数据记录 [Table Scan] 表扫描(最慢),对表记录逐行进行检查 [Clustered Index Sc ...
- C++反射实现(转)
参考了wxWidgets的相关代码,并进行简化,同时借鉴了网上的相关内容,改进之处在于,只需要继承基本类Object,在类的头文件中定义宏,DECLARE_CLASS(类名),在类的实现文件中定义宏, ...
- 简单js 切换左侧栏目的样式
这是html代码,里面写了left.html <div id='mydiv'> <a class='qwe'>1</a> <a class='qwe'> ...
- binlog的原理
- Python IO内核交互了解
注:Unix \ Linux 环境下的network IO 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系 ...
- GDB in Action
GDB in Action 入门 编译 gcc -g -O0 -o word2vec.c word2vec -g 选项:要求 gcc 编译器保留调试符号信息. -O0 选项表示不优化,从 O1 ~ O ...