c# - .NET Core 3.1 和 SQL Server hierarchyid - 多个异常
问题描述
我在我的 .Net Core 3.1 项目中使用 SQL Server Db,并且一些存储过程和视图具有用于参数和数据的 hierarchyid 类型。
我使用Microsoft.Data.SqlClient
包。当我尝试读取数据时,SqlDataReader
我得到了异常:
System.IO.FileNotFoundException:无法加载文件或程序集“Microsoft.SqlServer.Types,版本=10.0.0.0,文化=中性,PublicKeyToken=89845dcd8080cc91”。该系统找不到指定的文件。
好的,我尝试Microsoft.SqlServer.Types
按照它的建议使用,但这个包不是 .NET Standard,它不起作用。
另外,我发现EntityFrameworkCore.SqlServer.HierarchyId
但是当我使用它时,我得到:
System.InvalidCastException:无法将“Microsoft.SqlServer.Types.SqlHierarchyId”类型的对象转换为“Microsoft.Data.SqlClient.Server.IBinarySerialize”类型。
那么到底如何在 .NET Core 3.1 中使用 HierarchyId 类型呢?
我打算在 linux 上托管这个解决方案。
更新
我确实使用Microsoft.Data.SqlClient
与 .NET Core 兼容的 2.0。另外,我添加了 then 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>
到目前为止没有运气。
更新 2
这是引发异常的代码:
using (SqlDataReader reader = await detailsCmd.ExecuteReaderAsync())
{
while (reader.Read())
{
details.Add(new HierarchyDetails
{
Id = reader.GetInt32(0),
groupPath = reader.GetValue(1).ToString(), // <==== EXCEPTION
name = reader.GetString(2),
optionalData = reader.IsDBNull(3) ? null : reader.GetString(3)
});
}
}
该表只有一行:
id groupPath culture name optionalData
24 0x58 en-US testing
解决方案
您的错误消息表明您使用了使用 nuget https://www.nuget.org/packages/Microsoft.SqlServer.Types/10.50.1600.1的东西,它是 .NET Framework dll,而不是 .NET Core。
您提到您使用Microsoft.Data.SqlClient
,请确保您使用 与 .NET Core 兼容的https://www.nuget.org/packages/Microsoft.Data.SqlClient/ 。
如果出现其他错误,请同时检查Entity Framework Core hierarchyid
推荐阅读
- angular - 使用 mapbog gl js 突出显示(着色)区域取决于 Mapbox 上土地区域的大小
- python - 删除以特定数字开头的行
- android - App.Current.MainPage 上的 NullReferenceException
- c++ - 嗨,我正在努力解决排序问题
- c++ - 我在一个死循环游戏问题中的方法有什么问题?
- python - 从特定日期检索电子邮件
- android - 如何将我的按钮从屏幕顶部向下移动?
- openid-connect - MSAL.Net 能否用于 RPOC 流以获取 Azure B2C 中的 Id 令牌
- javascript - 练习 javascript 并在 if 语句中出现错误
- python - python Django REST Framework CSRF 失败:未设置 CSRF cookie?