在 CodeFirst 方法中使用 EntityFramework.HierarchyId,Type hierarchyid 未使用名称空间或别名限定

Using EntityFramework.HierarchyId in CodeFirst approach, The Type hierarchyid is not qualified with a namespace or alias

我正在开始新项目,我想在我的数据库模型和 CodeFirst 方法中使用 HierarchyID。所以我使用 nuget 添加了 EntityFramework.HierarchyId。

但是当我 运行 更新数据库时,我收到这个异常:

Schema specified is not valid. Errors: 
(0,0) : error 0040: The Type hierarchyid is not qualified with a namespace or alias. Only primitive types can be used without qualification.

这是我的 table 的样子:

public class Activity
{
    [Key]
    public int ActivityId { get; set; }

    public HierarchyId ActivityPath { get; set; }

    public string Name { get; set; }
}

我知道我很容易错过同样的事情,但我无法在 Google 上找到有用的示例。谢谢!

我终于找到了这个问题的原因。 因为整个解决方案是新的,它使用的是 ./express 数据库(我不知道为什么它选择了这个实例......也许它是默认的)。即使我安装了 MS SQL 2012,./express 的实例也是 SQL2005 -> 不支持 hierarchyId。当我明确指定连接字符串到较新版本时,问题解决了。

我会保留这个 post 来帮助其他人...如果您是他们中的一员,请不要忘记投票。