Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET Core 3.1和SQL Server hierarchyid-多个异常_C#_Sql Server_.net Core_.net Core 3.1 - Fatal编程技术网

C# .NET Core 3.1和SQL Server hierarchyid-多个异常

C# .NET Core 3.1和SQL Server hierarchyid-多个异常,c#,sql-server,.net-core,.net-core-3.1,C#,Sql Server,.net Core,.net Core 3.1,我在.NETCore3.1项目中使用SQLServerDB,一些存储过程和视图具有参数和数据的层次结构类型 我使用Microsoft.Data.SqlClient包。当我尝试使用SqlDataReader读取数据时,会出现异常: System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.Types,版本=10.0.0.0,区域性=中性,PublicKeyToken=89845DCD80CC91”。系统找不到指定的文件 好的,我试

我在.NETCore3.1项目中使用SQLServerDB,一些存储过程和视图具有参数和数据的层次结构类型

我使用
Microsoft.Data.SqlClient
包。当我尝试使用
SqlDataReader
读取数据时,会出现异常:

System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.Types,版本=10.0.0.0,区域性=中性,PublicKeyToken=89845DCD80CC91”。系统找不到指定的文件


好的,我试着按照它的建议使用Microsoft.SqlServer.Types,但是这个包不是.NET标准的,而且不起作用

此外,我还找到了EntityFrameworkCore.SqlServer.HierarchyId,但当我使用它时,我得到了:

System.InvalidCastException:无法将类型为“Microsoft.SqlServer.Types.SqlHierarchyId”的对象强制转换为类型为“Microsoft.Data.SqlClient.Server.IBinarySerialize”

那么,在.NETCore3.1中究竟如何使用层次结构类型呢

我计划在linux上托管此解决方案

更新 我确实使用了与.NET Core兼容的Microsoft.Data.SqlClient2.0。另外,我添加了EntityFrameworkCore.SqlServer.HierarchyId,得到了以下错误:

System.InvalidCastException:无法将类型为“Microsoft.SqlServer.Types.SqlHierarchyId”的对象强制转换为类型为“Microsoft.Data.SqlClient.Server.IBinarySerialize”

以下是.csproj:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="EntityFrameworkCore.SqlServer.HierarchyId" Version="1.1.0" />
    <PackageReference Include="Microsoft.Data.SqlClient" Version="2.0.0" />
    <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
  </ItemGroup>

  <ItemGroup>
    <Folder Include="Helpers\" />
  </ItemGroup>

</Project>

您的错误消息表明您使用的是使用nuget的东西,即.NET Framework dll,而不是.NET Core

如果您提到您使用的是Microsoft.Data.SqlClient,请确保您使用的是与.NET Core兼容的


如果出现其他错误,请同时检查

您的错误消息表明您使用的是使用nuget的.NET Framework dll,而不是.NET Core

如果您提到您使用的是Microsoft.Data.SqlClient,请确保您使用的是与.NET Core兼容的


如果出现其他错误,请同时检查解决方案,以便在所有查询中将hierarchyid转换为NVARCHAR:

... CAST(groupPath as NVARCHAR(4000)) as groupPath ...

然后将其用作字符串。

目前的解决方案是在所有查询中将hierarchyid转换为NVARCHAR:

... CAST(groupPath as NVARCHAR(4000)) as groupPath ...

然后将其用作字符串。

Microsoft.SqlServer.Types,Version=10.0.0
。。。那不是SQLServer2008吗?SQL Server 2008。请使用示例代码更新问题并将其放置在发现此异常的位置。已添加代码。
Microsoft.SqlServer.Types,Version=10.0.0
。。。那不是SQLServer2008吗?SQL Server 2008。请使用示例代码更新问题,并将其放置在发现此异常的位置。已添加代码。
... CAST(groupPath as NVARCHAR(4000)) as groupPath ...