Kyl*_*yle 9 entity-framework entity-framework-core
我正在尝试使用 EF Core,但我需要hierarchyid
在我的一个表上使用 sql server 数据类型。
是否可以将我的 c# 类中的字段指定为hierarchyid 类型?
我可以在hierarchyid
不破坏 EF 的情况下手动将列 EF 创建为类型吗?
编辑:我试图这样做:
public class Entity
{
public int Id { get; set; }
public string Name { get; set; }
public SqlHierarchyId HierarchyId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
建议 EF 核心 2.1 支持此功能,但是当我运行 add-migration 时,出现此错误:
The current CSharpHelper cannot scaffold literals of type 'Microsoft.SqlServer.Types.SqlHierarchyId'. Configure your services to use one that can.
Run Code Online (Sandbox Code Playgroud)
对于那些寻找 SqlHierarchyId 包所在的 Nuget 包的人来说,它在Microsoft.SqlServer.Types
.
请注意,包信息表示此包包含 DbGeography 和 DbGeometery 类型,但它还包含 SqlHierarchyId 类型。
还要注意类是SqlHierarchyId
,不是HierarchyId
(就像我正在寻找的那样)。
如果您使用的是 Entity Framework Core 3.1,则应使用 NuGet EntityFrameworkCore.SqlServer.HierarchyId
。Microsoft.SqlServer.Types
.NET Core 不完全支持。
https://www.nuget.org/packages/EntityFrameworkCore.SqlServer.HierarchyId
https://github.com/dotnet/efcore/issues/365#issuecomment-618688829
EntityFrameworkCore.SqlServer.HierarchyId
由 @bricelam 编写,在 Entity Framework 团队工作,但需要注意的是,此 NuGet 仍然是不受支持的第三方包。
我认为这仍然是您最好的选择,因为它不会很快实施并且可能永远不会得到官方支持。来自 2020-04-07 的评论:
基本上,我们的小团队现在为 .NET 实现、支持和维护 HierarchyId 库似乎并不谨慎,因此我们实际上被阻止了实现这一点。
https://github.com/dotnet/efcore/issues/365#issuecomment-610586190
Microsoft SqlClient Data Provider for SQL Server 中还有一个问题,用于支持 .NET Core 的 SqlHierarchyId 类型。(用于 SQL Server 的 Microsoft ADO.NET 驱动程序,又名 Microsoft.Data.SqlClient GitHub 存储库)
https://github.com/dotnet/SqlClient/issues/322
归档时间: |
|
查看次数: |
6081 次 |
最近记录: |