我正在将 .Net 8 和 EF Core 8 与 MySQL 结合使用,并希望使用 DateOnly 类型。每当我尝试从数据库读取数据时,都会收到以下错误:
Microsoft.EntityFrameworkCore.Relational.dll 中的“System.InvalidCastException”:“无法将类型为“System.DateTime”的对象转换为类型为“System.DateOnly”。” 在 System.Data.Common.DbDataReader.GetFieldValue[T](Int32 序数) 在 MySql.Data.MySqlClient.MySqlDataReader.GetFieldValue[T](Int32 序数) 在 Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.g__ProcessCurrentElementRow|23_0[TInclusionEntity,TInincludedEntity](<>c__DisplayClass23_0问题似乎是 EF Core 使用
2& ) at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.ShaperProcessingExpressionVisitor.PopulateIncludeCollection[TIncludingEntity,TIncludedEntity](Int32 collectionId, QueryContext queryContext, DbDataReader dbDataReader, SingleQueryResultCoordinator resultCoordinator, Func
3 父标识符,Func3 outerIdentifier, Func
3 selfIdentifier,IReadOnlyList1 parentIdentifierValueComparers, IReadOnlyList
1比较器,IReadOnlyList1 selfIdentifierValueComparers, Func
5 innerShaper, INavigationBase inverseNavigation,Action2 fixup, Boolean trackingQuery) at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable
1.Enumerator.MoveNext() 在 System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 源,布尔值&找到) 在 Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](表达式查询) 在 Microsoft.EntityFrameworkCore.Query.Internal.EntityQueryProvider.Execute[TResult](表达式表达式)
MySqlDataReader.GetValue
,它似乎不支持 DateOnly 作为默认值,如下所示:https://github.com/mysql-net/MySqlConnector/issues/1451。 我想知道我是否遗漏了一些东西,或者是否有解决方法,因为最近似乎没有任何活动。