“invalidcastexception:无法在.net core 3.1中强制转换类型为“microsoft.sqlserver.types.sqlhierarchyid”的对象

cotxawn7  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(422)

我尝试将我的项目从.net core sdk 2.2升级到.net core sdk 3.1。我的模型类包括这个“publicsqlhierarchyid”。在.NETCoreSDK2.2中,sqlhierarchyid可以很好地与“使用microsoft.sqlserver.types”配合使用。

namespace Entity
{
    using Microsoft.SqlServer.Types;
    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;

    public class Operators
    {

        [Key]
        public int OperatorId { get; set; }

        public SqlHierarchyId OperatorHID { get; set; }
    }
}

但此行在使用.net core sdk 3.1时引发异常“invalidcastexception:unable to cast object of type'microsoft.sqlserver.types.sqlhierarchyid”。

如何解决这个问题?

8wigbo56

8wigbo561#

您可以通过在应用程序配置文件中使用程序集重定向来解决此问题,如以下示例所示:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    ...
    <dependentAssembly>
        <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
        <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
    ...
</assemblyBinding>
<runtime>

请按照下面的文档了解更多信息。正在中断对sql server 2012中数据库引擎功能的更改

相关问题