.Net Core 2.0 EntityFrameworkCore CodeFirst入门教程
最近难得有时间闲下来,研究了一下.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.EntityFrameworkCore Install-package Microsoft.EntityFrameworkCore.SqlServer
然后,我们新建DbContext类,如MyDbContext,继承自DbContext,代码如下:
using Microsoft.EntityFrameworkCore; using System.ComponentModel.DataAnnotations; namespace NetCoreDemo.Repository { public class MyDbContext : DbContext { public MyDbContext(DbContextOptions<MyDbContext> options) : base(options) { } public DbSet<User> 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<MyDbContext>(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
这里,我们看到出现了错误,如图:
这里,我们修改项目文件,在项目上面右键,打开项目文件,如图:
在里面添加如下代码(任意位置均可):
<ItemGroup> <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.1" /> </ItemGroup>
加完后,如图:
然后,我们再次执行命令:
dotnet ef migrations add v1
如果出现Build faild的错误,重新生成一下项目,然后再次执行,执行成功后,如图:
这一步成功了,也就意味着,我们后面的路会很顺利了,下面我们更新到数据库,执行命令:
dotnet ef database update
等待一小会儿,执行成功后,我们会发现数据库中已经生成了我们的数据库和表了,这里我就不截图了,上传图片实在是太慢了~~
三 、后续工作
上面,我们已经完成了数据库的创建,后面就可以开开心心的写代码了~~
推荐阅读
-
Asp.net Core 2.0 OpenId Connect Handler缺失Claims?
-
.NET Core 2.0 Preview2 发布汇总
-
CodeFirst从零开始搭建Asp.Net Core2.0网站
-
记一次NET Core 2.0在macOS 10.13出现的奇怪Build IO共享冲突问题
-
在ASP.NET Core 2.0上操作MongoDB就是能这么的简便酷爽(自动完成分库分表)
-
NET Core 拓展方法和中间件集合(支持NET Core2.0+)
-
ASP.NET Core 2.0集成Office Online Server(OWAS)实现办公文档的在线预览与编辑(支持word\excel\ppt\pdf等格式)
-
ASP.NET Core 2.0 使用NLog实现日志记录
-
CentOS开发ASP.NET Core入门教程
-
Centos7+Docker+Jenkins+ASP.NET Core 2.0自动化发布与部署的实现