简体   繁体   English

EFCore 3.0 Devart Provider with OracleDB 无法正常工作原始 sql

[英]EFCore 3.0 Devart Provider With OracleDB doen't work raw sql

My project run on .net core 3.1 , I use data provider Devart.Oracle also my project data stores on OracleDB 11g我的项目在.net core 3.1上运行,我使用数据提供程序Devart.Oracle也在OracleDB 11g存储我的项目数据

My problem when i try to get sequence with EFCore V3.0 like that;当我尝试使用 EFCore V3.0 获取序列时出现的问题;

using (TransactionScope scope = new TransactionScope())
            {
              _dbcontext.TABLEs.Add(values);
              var _sqlseq = string.Format(@"PACKAGE.MY_TABLE_SEQ");
              _dbcontext.TABLEs.FromSql(_sqlseq).FirstOrDefault();
              _dbcontext.SaveChanges();
              scope.Complete();
            }

Also I tried FromSqlRaw but i didn't take any result and idea ?我也试过FromSqlRaw但我没有采取任何结果和想法?

The following code works successfully with EF Core v3.1 and dotConnect for Oracle v9.10.909:以下代码与 EF Core v3.1 和 dotConnect for Oracle v9.10.909 一起成功运行:

var _sqlseq = string.Format(@"select * from dept");
var result = _dbcontext.DEPTs.FromSqlRaw(_sqlseq).FirstOrDefault();

I updated my project packages like as below我更新了我的项目包,如下所示

EF Core 3.1.6 Devart 9.10.1054 versions then now i can run that query EF Core 3.1.6 Devart 9.10.1054 版本然后现在我可以运行该查询

var sql = string.Format(@"A TABLE QUERY");
 var result = _dbcontex.TABLESs.FromSqlRaw(sql).First();

Also i have another solition for run pure sql in .netcore projects我还有另一个在 .netcore 项目中运行纯 sql 的解决方案

if you can use Dappet which is avalible for run pure sql framework like this,如果您可以使用可用于像这样运行纯 sql 框架的 Daappet,

var conn = this.GetConnection(_connectionString); // dapper connect DB with  connection string
        result = SqlMapper.Query<dynamic>(conn, query, null, commandType: CommandType.Text).First();
        conn.Close();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM