我在使用Dapper时遇到了困难,只需要从一个视图中 Select 一个查询,该视图是从SQL Developper中手动创建的,在测试和生产中都能很好地工作. 但当我在Windows服务器上发布应用程序时,我收到以下错误:

ORA-01858: A non-numeric character was found where a numeric was expected

Bellow是我的类定义:

public class rib_model_new
{
    public int ID { get; set; }
    public string CUST_AC_NO { get; set; }
    public string AC_DESC { get; set; }
    public string CUST_NO { get; set; }
    public string AC_OPEN_DATE { get; set; }
    public string CUSTOMER_PREFIX { get; set; }
    public string E_MAIL { get; set; }
    public string ACY_CURR_BALANCE { get; set; }
    public string MOBILE_NUMBER { get; set; }
}

这是我和Dapper的代码:

var cmdDef = new CommandDefinition("select * from COMPTE_OPEN_NEW_2 where AC_OPEN_DATE='19-aug-22'",commandType: CommandType.Text, flags: CommandFlags.NoCache);
                rib_models = await objconn.QueryAsync<rib_model_new>(cmdDef);

Bellow是我的视图定义:

CREATE OR REPLACE VIEW COMPTE_OPEN_NEW_2 AS SELECT c.customer_prefix, cust_ac_no,cust_no, ac_desc, AC_OPEN_DATE,acy_curr_balance, c.e_mail, c.mobile_number FROM FCUBSLIVE.STTM_CUST_ACCOUNT a,FCUBSLIVE.sttm_customer d, FCUBSLIVE.sttm_cust_personal c WHERE a.auth_stat = 'A' and a.cust_no = d.customer_no and d.customer_no = c.customer_no AND a.record_stat = 'O';

这是从我的代码运行的查询IM,它是从SQL Developper运行的:

select * from COMPTE_OPEN_NEW_2 where ac_open_date='17-aug-22'

And finally this image show my view data types: enter image description here

从堆栈跟踪:

    at OracleInternal.ServiceObjects.OracleConnectionImpl.VerifyExecution(Int32& cursorId, Boolean bThrowArrayBindRelatedErrors, SqlStatementType sqlStatementType, Int32 arrayBindCount, OracleException& exceptionForArrayBindDML, Boolean& hasMoreRowsInDB, Boolean bFirstIterationDone)
   at OracleInternal.ServiceObjects.OracleCommandImpl.ExecuteReader(String commandText, OracleParameterCollection paramColl, CommandType commandType, OracleConnectionImpl connectionImpl, OracleDataReaderImpl& rdrImpl, Int32 longFetchSize, Int64 clientInitialLOBFS, OracleDependencyImpl orclDependencyImpl, Int64[] scnForExecution, Int64[]& scnFromExecution, OracleParameterCollection& bindByPositionParamColl, Boolean& bBindParamPresent, Int64& internalInitialLOBFS, Int64 internalInitialJSONFS, OracleException& exceptionForArrayBindDML, OracleConnection connection, IEnumerable`1 adrianParsedStmt, Boolean isDescribeOnly, Boolean isFromEF)
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior)
   at Oracle.ManagedDataAccess.Client.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
   at System.Data.Common.DbCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
--- End of stack trace from previous location ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Dapper.SqlMapper.<QueryAsync>d__33`1.MoveNext() in /_/Dapper/SqlMapper.Async.cs:line 418
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at CheckbookHangfire.Services.Services_Flexcube_Test.<GetAccountsCreated_new>d__18.MoveNext() in C:\Users\Administrator\source\repos\CheckbookHangfire\CheckbookHangfire\Services\Services_Flexcube_Test.cs:line 318

从这个轨迹中,我试图理解这个错误:

 at Dapper.SqlMapper.<QueryAsync>d__33`1.MoveNext() in /_/Dapper/SqlMapper.Async.cs:line 418

请问这是什么意思,达珀在这里做的是,他不能将结果映射到我的模型中. 所有My Models字段与查询结果列具有相同的名称.

有人能帮帮忙吗??

致以最诚挚的问候...

推荐答案

下午好, 你今天好吗. 最后,我通过在另一台服务器上部署应用程序解决了我的问题.我认为Dapper的内存缓存中有另一个我不认识的模特的.但在另一台Windows服务器上部署该应用程序是可行的.

谢谢大家.

致以最诚挚的问候...

Csharp相关问答推荐

C#自定义字典与JSON(de—)serialize

使用LINQ to XML获取元素值列表是不起作用的

如何注册实现同一接口的多个服务并注入到控制器构造函数中

可为空的泛型属性

使用可信第三方的Iext8.Net pdf签名

TCPClient阅读流

持有者安全定义未显示在Swagger.NET 8中

为基本审计设置Audit.EntityFramework.Core

异步任务导致内存泄漏

C#普罗米修斯指标

有空容错运算符的对立面吗?

Blazor Server.NET 8中的Blazore.FluentValidation问题

此异步方法在重写方法中缺少等待运算符警告

如何正确处置所有动态控件?

将J数组转换为列表,只保留一个嵌套的JToken

C#无法将.csv列转换为用于JSON转换的列表

将字符串类型日期输入(yyyy-mm-ddthh:mm:ss)转换为MM/dd/yyyy格式

如何在.NET Core 8中自定义标识用户模型

为什么我的属性即使没有显式地设置任何[必需]属性,也会显示验证?

如何保存具有多个重叠图片框的图片框?