从 dotnet CLI 构建 oracle 数据库

scaffolding an oracle database from dotnet CLI

我精通 C#,对 oracle 和 dotnet cli 有点模糊。

我想做的是,从命令行创建一个控制台应用程序,然后从命令行创建一个 EF 模型,“数据库优先”。

我已经通过 visual studio 完成了这项工作,即创建一个控制台应用程序,添加包 Oracle.ManagedDataAccess.EntityFramework Oracle.ManagedDataAccess

创建到我的 Oracle 数据库的“数据连接”。

添加一个 ado.net 实体数据模型,并使用向导 select 单个 table,然后应用它并创建一个模型,然后我可以查询数据库与.

所以从命令行?

dotnet tool install --global dotnet-ef
dotnet tool update --global dotnet-ef
dotnet new console
dotnet add package Microsoft.EntityFramework.Design

用 网络构建

很好(不足为奇)

然后,我对“manageddataaccess”和 Oracle.EntityFrameworkCore 之类的东西之间的区别感到非常困惑......

所以你可以选择任何一种方式(它仍然会失败)。

dotnet add package Oracle.EntityFrameworkCore

现在....

dotnet build

检测到 Microsoft.Relational 和 NU1107 版本冲突....

如果你安装显式版本,那么“Oracle.EntityFrameworkCore 3.19.80 需要......”一个旧版本......所以这些东西不能一起工作。

有什么想法吗?

如果你继续努力(这只是一个警告!)并尝试构建脚手架,那么毫不奇怪它会失败并出现某种方法未找到错误(显然是因为我们有错误的包)。

所有在线文档似乎都在 visual studio 中使用包管理器执行某些操作,这对我来说没有任何用处,我希望能够从构建脚本的命令行生成此代码。

(实际上让文档引用 CLI 运行 更加明确)。

好的,所以问题是版本(我可以说几乎完全没有明确 documentation/examples)

这行得通(至少它支持了我想要的table,我不知道下游是否还有更多问题)

dotnet tool install --global dotnet-ef
dotnet tool update --global dotnet-ef
dotnet new web -f netcoreapp3.1 
dotnet add package Microsoft.EntityFrameworkCore --version 3.1.8
dotnet add package Microsoft.EntityFrameworkCore.Tools --version 3.1.8
dotnet add package Oracle.EntityFrameworkCore --version 3.19.80
dotnet ef DbContext scaffold "Data Source=myserver:1521/mydatabase; User ID=me;Password=mypassword;" Oracle.EntityFrameworkCore -t ATABLE

我可能会尝试使用 paket 而不是 nuget,看看它是否可以更自动地解决依赖关系,而不是我必须将它们拼凑起来。