博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程
阅读量:7083 次
发布时间:2019-06-28

本文共 2740 字,大约阅读时间需要 9 分钟。

最近难得有时间闲下来,研究了一下.net core 2.0,总的来说,目前除了一些第三方的库不支持外,基本上可以满足我们的项目需求了!

我们就以一个网站开发为例,搭建一个简单的三层架构,先熟悉一下.net core 2.0的开发流程!

 

 一 、搭建项目框架

 

首先,我们新建项目,如图:

 

然后,我们分别添加.net core类库项目,NetCoreDemo.Repository(数据访问层)和NetCoreDemo.Service(服务层),项目结构如下:

 

 二 、初始化数据库

项目中, NetCoreDemo.Repository相当于三层中的DAL层,主要是与数据库交互!为了实现web项目和数据库解耦,方便将来更好数据库,我们在NetCoreDemo.Repository中安装EntiryFrameWorkCore,这里我们以SQL Server为例,安装下面两个安装包,在程序包管理控制台执行以下命名或者用Nuget包管理器安装均可:

Install-package Microsoft.EntityFrameworkCoreInstall-package Microsoft.EntityFrameworkCore.SqlServer

然后,我们新建DbContext类,如MyDbContext,继承自DbContext,代码如下:

using Microsoft.EntityFrameworkCore;using System.ComponentModel.DataAnnotations;namespace NetCoreDemo.Repository{    public class MyDbContext : DbContext    {        public MyDbContext(DbContextOptions
options) : base(options) { } public DbSet
Uesrs { get; set; } }}

这里,我们新建一个User类作为测试,代码如下:

public class User{     [Key]     public int Id { get; set; }     public string UserName { get; set; }     public string Password { get; set; }}

 现在,DbContext建好了,下面我们连接数据库,还差一个数据库连接字符串,这个连接字符串我们通常是放在webconfig中的,那么.net core中应该放到哪里呢?

我们来到web项目下,看到有一个appsettings.json,里面内容如下:

{  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Warning"    }  }}

我们就把数据库连接字符串放到这里吧,改完后,其内容如下:

{  "Logging": {    "IncludeScopes": false,    "LogLevel": {      "Default": "Warning"    }  },  "ConnectionStrings": {    "SqlServer": "Data Source=.;Initial Catalog=netcore;User Id=sa;Password=123456;"  } }

既然我们是Code First,下面准备创建数据库,生成表,执行Migration!

我们修改Startup.cs,修改ConfigureServices方法如下:

public void ConfigureServices(IServiceCollection services)        {            var connection = Configuration.GetConnectionString("SqlServer");            services.AddDbContext
(options => options.UseSqlServer(connection, b => b.MigrationsAssembly("NetCoreDemo"))); services.AddMvc(); }

这里需要注意的是,我们通过Configuration方法读取appsetting.json中的连接字符串,然后调用AddDbContext方法,把连接字符串传进去,这里要设置MigrationsAssembly为当前web项目,(这里大家可以试一下不设置这个,会报一个错误),这是因为我们执行Migration是在web项目下,下面我们打开DOS窗口,开始 -> 运行 -> CMD,定位到web项目根目录下,执行如下命令:

dotnet ef migrations add v1

这里,我们看到出现了错误,如图:

这里,我们修改项目文件,在项目上面右键,打开项目文件,如图:

 

在里面添加如下代码(任意位置均可):

加完后,如图:

 

然后,我们再次执行命令:

dotnet ef migrations add v1

如果出现Build faild的错误,重新生成一下项目,然后再次执行,执行成功后,如图:

这一步成功了,也就意味着,我们后面的路会很顺利了,下面我们更新到数据库,执行命令:

dotnet ef database update

等待一小会儿,执行成功后,我们会发现数据库中已经生成了我们的数据库和表了,这里我就不截图了,上传图片实在是太慢了~~

 

 三 、后续工作

 上面,我们已经完成了数据库的创建,后面就可以开开心心的写代码了~~

 

 作者:

QQ交流群:243633526

 博客地址:http://www.cnblogs.com/yunfeifei/

 声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

如果大家感觉我的博文对大家有帮助,请推荐支持一把,给我写作的动力。

 

你可能感兴趣的文章
滴滴研发笔记题,亮灯问题
查看>>
装饰模式(Decorator)
查看>>
几何画板二次函数系的制作
查看>>
[设计模式]PHP设计模式之单例模式
查看>>
树的高度
查看>>
iOS.KVC.setValue:forKey:
查看>>
转:设计模式六大原则(3):依赖倒置原则
查看>>
转:快速排序的一个小问题没想明白,求助各位
查看>>
eclipse rcp 打包出适合不同操作系统和操作位数.
查看>>
简单的个人博客建站
查看>>
使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)...
查看>>
POJ 3080 Blue Jeans、POJ 3461 Oulipo——KMP应用
查看>>
python3中input()方法报错traceback变量未定义的解决方法
查看>>
animation渐进实现点点点等待效果实例页面
查看>>
配置 ssh无密码登陆
查看>>
java读取和写入浏览器Cookies
查看>>
熟悉常用的HDFS操作
查看>>
SCM软件配置管理 (一)SVN 与 CVS
查看>>
js闭包
查看>>
CocoaPods Setting up CocoaPods master repo无反应时的处理
查看>>