DefaultTypeMappings do not seem to be applied in queries.
- Dominant language
- C#
- Stars
- 14.8k
- Forks
- 3.4k
- PR merge metrics
- PR metrics pending
Description
## File a bug
### Include your code
[DefaultTypeMappingsTests.zip](https://github.com/user-attachments/files/17292439/DefaultTypeMappingsTests.zip)
Change between SqlServer and Sqlite by modifying the method called in line 6.
### Include stack traces
SqlServer:
```
System.InvalidCastException
HResult=0x80004002
Message=Failed to convert parameter value from a NonGenericWrapper to a Int32.
Source=Microsoft.Data.SqlClient
StackTrace:
at Microsoft.Data.SqlClient.SqlCommand.<>c.b__211_0(Task`1 result)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke() in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/TaskContinuation.cs:line 180
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 179
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/ExecutionContext.cs:line 203
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread) in /_/src/libraries/System.Private.CoreLib/src/System/Threading/Tasks/Task.cs:line 2345
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.d__18.MoveNext() in /_/src/EFCore.Relational/Storage/RelationalCommand.cs:line 658
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.d__18.MoveNext() in /_/src/EFCore.Relational/Storage/RelationalCommand.cs:line 719
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.d__21.MoveNext() in /_/src/EFCore.Relational/Query/Internal/SingleQueryingEnumerable.cs:line 401
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.d__7`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.d__20.MoveNext() in /_/src/EFCore.Relational/Query/Internal/SingleQueryingEnumerable.cs:line 323
at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 154
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.d__14`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 138
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.d__14`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 150
at Program.<<$>g__ExecuteQueriesInContext|0_2>d.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 64
at Program.<<$>g__ExecuteWithSqlServer|0_0>d.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 19
at Program.<$>d__0.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 6
at Program.(String[] args)
This exception was originally thrown at this call stack:
System.Convert.ChangeType(object, System.Type, System.IFormatProvider) in Convert.cs
Microsoft.Data.SqlClient.SqlParameter.CoerceValue(object, Microsoft.Data.SqlClient.MetaType, out bool, out bool, bool)
Inner Exception 1:
InvalidCastException: Object must implement IConvertible.
```
Sqlite:
```
System.InvalidOperationException
HResult=0x80131509
Message=No mapping exists from object type DefaultTypeMappingsTests.NonGenericWrapper to a known managed provider native type.
Source=Microsoft.Data.Sqlite
StackTrace:
at Microsoft.Data.Sqlite.SqliteValueBinder.Bind() in /_/src/Microsoft.Data.Sqlite.Core/SqliteValueBinder.cs:line 236
at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt) in /_/src/Microsoft.Data.Sqlite.Core/SqliteParameter.cs:line 225
at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt stmt) in /_/src/Microsoft.Data.Sqlite.Core/SqliteParameterCollection.cs:line 331
at Microsoft.Data.Sqlite.SqliteCommand.d__54.MoveNext() in /_/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs:line 323
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult() in /_/src/Microsoft.Data.Sqlite.Core/SqliteDataReader.cs:line 151
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior) in /_/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs:line 312
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) in /_/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs:line 406
at Microsoft.Data.Sqlite.SqliteCommand.d__60.MoveNext() in /_/src/Microsoft.Data.Sqlite.Core/SqliteCommand.cs:line 420
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.d__18.MoveNext() in /_/src/EFCore.Relational/Storage/RelationalCommand.cs:line 658
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.d__18.MoveNext() in /_/src/EFCore.Relational/Storage/RelationalCommand.cs:line 719
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.d__21.MoveNext() in /_/src/EFCore.Relational/Query/Internal/SingleQueryingEnumerable.cs:line 401
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.d__20.MoveNext() in /_/src/EFCore.Relational/Query/Internal/SingleQueryingEnumerable.cs:line 323
at System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult() in /_/src/libraries/System.Private.CoreLib/src/System/Runtime/CompilerServices/ConfiguredValueTaskAwaitable.cs:line 154
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.d__14`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 138
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.d__14`1.MoveNext() in /_/src/EFCore/Query/ShapedQueryCompilingExpressionVisitor.cs:line 150
at Program.<<$>g__ExecuteQueriesInContext|0_2>d.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 64
at Program.<<$>g__ExecuteWithSqlite|0_1>d.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 36
at Program.<$>d__0.MoveNext() in G:\Source\repos\DefaultTypeMappingsTests\Program.cs:line 6
at Program.(String[] args)
```
### Include provider and version information
EF Core version:
Database provider: Microsoft.EntityFrameworkCore.SqlServer and Microsoft.EntityFrameworkCore.Sqlite
Target framework: .NET 8.0
Operating system: Windows 10 & 11
IDE: Visual Studio 2022 17.11.4
Contributor guide
Assessment
This issue has not been assessed yet.