我刚刚了解了一种天才类型,它可以简化我的很多工作,但看起来我首选的 ORM 无法识别它。
是否有让 ServiceStack OrmLiteHierarchyId
在 SQL Server 中识别的解决方法?关于修改哪些文件的任何建议以及如何进行的任何提示?
编辑 :
这是对问题的更好说明。我有以下课程:
public class MyClass
{
public int Id { get; set; }
public SqlHierarchyId HierarchyId { get; set; }
}
SqlHierarchyId是一种自定义 SQL Server 数据类型。OrmLite 将为它生成以下类:
有趣的是,我可以在[StringLength(255)]
属性上使用属性,它会获取varchar(255)
类型:
我在这里手动更改了表格并添加了列数据类型以展示差异。请注意第三列的数据类型:
拥有一个varchar
表示对于其他 DBMS 来说非常好,因为它可以在 C# 中转换,但对于 SQL Server,最好让它匹配相应的数据类型。hierarchyid
这将使视图的创建更容易(由于数据类型的内置函数)。
我知道 EF4 不支持该类型(不确定 5)。我还浏览了GitHub 上的OrmLiteDialectProviderBase.cs文件,我可以看到支持的 ADO.NET 数据类型列表。
我的简单问题是:这是 ADO.NET 的一个强大限制,还是可以在 OrmLite 中看到?如果有任何建议,我愿意帮助扩展这部分。