ef 添加oracle 视图,.net core MVC 通过ef core对oracle数据库逆向创建数据模型和视图...

近日刚刚开始接触学习.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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值