近日刚刚开始接触学习.net core,以往在Visual Studio 的.net MVC环境下做项目有许多工具可供使用,而且使用十分方便,现在一下要转跨平台,感觉还是有些不习惯,但跨平台的魅力实在无法抵挡,所以毅然决定入坑!
之前在VS中做.net mvc项目,对数据库->数据模型->控制器->视图这段连接的实现也就是点点鼠标的事,现在在.net core上实现却一下子有点懵了,经过翻阅资料和几次尝试后(百度上全是MySQL的资料,oracle相关的超级少 T T),才感觉到.....其实也就是几个命令的事。废话不多说,开始!
1.创建一个ASP .Net core 项目
我用的VSCode,据说很牛(确实很牛).......怎么创建ASP .Net core 项目可以参考微软官方文档
步骤如下:
1)打开集成终端(Ctrl+`)。
2) 将目录更改为 (cd) 包含项目的文件夹。
3)运行下面的命令:
dotnet new mvc -o MvcMovie
code -r MvcMovie
其中 MvcMovie是项目名称。
2.使用dotnet add package添加如下插件(一定要注意版本号之间的依赖)
这里先说明一下,添加包的时候一定注意包之间的依赖关系和版本兼容性,如果出现错误提示一定要更改为提示给出的对应版本号!
在项目中添加如下包:
dotnet tool install --global dotnet-ef
dotnet tool install --global dotnet-aspnet-codegenerator
"Microsoft.EntityFrameworkCore.Relational"Version="2.2.6”
"Microsoft.EntityFrameworkCore.SqlServer"Version="2.2.6"
"Microsoft.EntityFrameworkCore.Tools" Version="2.2.6"
"Microsoft.EntityFrameworkCore.Tools.DotNet"Version="2.0.3 "Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.4"
"Oracle.EntityFrameworkCore" Version="2.19.60"
3.从数据库中生成实体类和上下文(Oracle)
命令:dotnet ef dbcontext scaffold "User Id=XX;Password=XXX;DataSource=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXX)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=XXXX)));" "Oracle.EntityFrameworkCore" -o Models -f -t XXXXXX
说明:User Id 账号 ;Password 密码;HOST 指oracle数据库的服务器地址 ; SERVICE_NAME 指数据库服务名称;-t 生成的数据实体类名称
4.从实体类生成控制器和增删改view
第3步逆向生成了数据实体类,那么就可以根据实体类生成相关控制器和增删改视图
命令:dotnet aspnet-codegenerator controller -name 要生成的控制器名称 -m 数据模型 -dc 上下文名称 --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
5.调整XXXContex文件
如果成功的话我们现在应该看到项目中Models、Controllers、Views三个文件夹中都自动新增了对应的文件,接下来我们再稍微调整一下ModelContext。
1)将ModelContext.cs中的以下部分屏蔽
/*protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
#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.UseOracle("User Id=XXX;Password=XXX;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=XX)));");
}
}*/
2)将oracle数据库的连接字符串添加到appsetting.json
"AllowedHosts": "*",
"ConnectionStrings": {
"Model6Context": "User Id=XX;Password=XX;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XX)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XX)));"
}
3)在Starup.cs的ConfigureServices中添加如下代码:
services.AddDbContext(options =>options.UseOracle(Configuration.GetConnectionString("Model6Context")));
6.完成,运行!
PS:这是我的第一篇文章,今后将会持续更新,发布更多的代码和解决问题的经验与大家一起共同学习进步,希望大家多多关注哟!
(如有问题欢迎留言)
标签:core,实体类,视图,EntityFrameworkCore,XX,Version,dotnet,数据模型
来源: https://www.cnblogs.com/silentmars/p/12331914.html