NetCore2.x 跨平台开发 四 EF Core 使用

.Net Core 跨平台开发 四 EF Core 使用

此内容将分为四部分(环境搭建、项目之间的引用与Nuget引用、web项目创建与发布、ef core 使用)

本章为第四部分EF Core 使用。

目前NetCore项目虽然有各种类型,总的来说就是控制台程序或Web程序,所以本章主要介绍如何创建一个 Asp.net core mvc 项目,实现NetCore Web项目打包发布。

EF Core可以对应数据库生成Model和增删改查操作,EF Core与EF代码一般无二。
但是使用EF可以直接使用VisualStudio通过IDE去生成,而目前使用EF Core我只知道使用命令行的方式来生成操作数据库对应的内容。

如果希望顺便的使用EF Core 最好是创建一个mvc项目,如果是分层项目,mvc内不希望存放EF Core,那么最好是创建console项目来存在EF Core代码,之后再用项目引用在mvc引用console当类库使用,如果直接创建classlib项目希望使用EF Core有些麻烦,官方是给出了方式我觉得有点麻烦就不采用了。

1、链接数据库

EF Core跟EF几乎是一致的,目前可以链接的数据库也差不多,主流的数据库像:MySql\MS Server\PostgreSQL\Oracle\SQLite\DB2 这些都是可以链接的。

在使用命令行创建EF Core代码前,我们需要给项目引用对应的数据库dll。

下面我将用MySql

创建MVC项目估计大家会都会其实很简单就是一个命令行,如果有不明白的亲们可以看前面的几个内容。

这里是默认你已经有了一个console项目或者mvc项目的前提下,以MySql数据库为例。

首先我们需要给项目添加必要的dll引用

需要在项目文件中添加引用

<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>

<ItemGroup>
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="6.10.4" />
</ItemGroup>

PS:如果有使用vs的朋友还是用老方法右击nuget引用就行。

接下来就简单了,准备好数据库和数据库表以后。直接通过命令行来生成对应的代码,在项目根目录打开命令行

命令

dotnet ef dbcontext scaffold "Server=localhost;Database=数据库名;uid=用户名;pwd=密码;" MySql.Data.EntityFrameworkCore -o 保存的文件夹 --no-build

例子

dotnet ef dbcontext scaffold "Server=localhost;User Id=root;Password=123456;Database=abc" "MySql.Data.EntityFrameworkCore" -o models --no-build

如果没有操作错误,这里执行完命令行以后不会有任何提示。直接去models看是否已经生成了数据库所对应的文件了。

至于如果使用生成代码的使用,这个就是跟咱们平常.Net EF是一样的。
如果对应Net EF使用问题有什么需要了解的可以直接按查看我写过的
Asp.Net MVC CRUD增删改查

这个系列写好啦,如果有什么疑问可以加群:568016706