从 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,看看它是否可以更自动地解决依赖关系,而不是我必须将它们拼凑起来。
我精通 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,看看它是否可以更自动地解决依赖关系,而不是我必须将它们拼凑起来。