ASP.NET Core エラー「InvalidCastException: Unable to cast object of type System.Int32 to type System.Int64.」が表示された場合の対処法
- 作成日 2022.01.18
- 更新日 2022.03.01
- ASP.NET Core
- ASP.NET Core
ASP.NET Coreでエラー「InvalidCastException: Unable to cast object of type System.Int32 to type System.Int64.」が表示された場合の対処法を記述してます。
環境
- OS windows10 pro
- IDE Visual Studio 2022
- .NET Core 6
エラー全文
以下の、sqlserverのテーブルから「dbo.Test」から
以下のModelを使用した際に発生
namespace WebApplication1.Models
{
public class Test
{
public long Id { get; set; }
public String Name { get; set; }
public long Age { get; set; }
}
}
Stack
An unhandled exception occurred while processing the request.
InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.Int64'.
Microsoft.Data.SqlClient.SqlBuffer.get_Int64()
InvalidCastException: Unable to cast object of type 'System.Int32' to type 'System.Int64'.
Microsoft.Data.SqlClient.SqlBuffer.get_Int64()
Microsoft.Data.SqlClient.SqlDataReader.GetInt64(int i)
lambda_method12(Closure , QueryContext , DbDataReader , ResultContext , SingleQueryResultCoordinator )
Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable<T>+AsyncEnumerator.MoveNextAsync()
Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync<TSource>(IQueryable<TSource> source, CancellationToken cancellationToken)
Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync<TSource>(IQueryable<TSource> source, CancellationToken cancellationToken)
WebApplication1.Controllers.TestsController.GetTest() in TestsController.cs
return await _context.Test.ToListAsync();
lambda_method6(Closure , object )
Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor+AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, object controller, object[] arguments)
System.Threading.Tasks.ValueTask<TResult>.get_Result()
System.Runtime.CompilerServices.ValueTaskAwaiter<TResult>.GetResult()
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask<IActionResult> actionResultValueTask)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(ref State next, ref Scope scope, ref object state, ref bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, object state, bool isCompleted)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
原因
型に「long」を使用していたため
対処法
「int」に変更する
namespace WebApplication1.Models
{
public class Test
{
public int Id { get; set; }
public String Name { get; set; }
public int Age { get; set; }
}
}
-
前の記事
Visual Studio 2022 「デバッグアダプターを起動できませんでした。追加情報を出力ウィンドウで確認できる場合があります。」が表示された場合の対処法 2022.01.18
-
次の記事
javascript lodashを使ってパスを指定してオブジェクトの更新を行う 2022.01.19
コメントを書く