Я только что узнал о типе гения, который упростит мою работу, но похоже, что мой предпочтительный ORM не распознает его.Поддержка типов конкретных SQL-серверов для OrmLite
Есть ли обходное решение, позволяющее ServiceStack OrmLite распознавать HierarchyId
в SQL Server? Любые предложения о том, какие файлы нужно изменить и какие намеки на продолжение?
EDIT:
Вот лучшая иллюстрация проблемы. У меня есть следующий класс:
public class MyClass
{
public int Id { get; set; }
public SqlHierarchyId HierarchyId { get; set; }
}
SqlHierarchyId является типом данных сервера SQL на заказ. OrmLite будет генерировать следующий класс для него:
Смешные достаточно, я могу использовать атрибут [StringLength(255)]
на имущество и он получит varchar(255)
типа вместо:
я вручную изменили таблицу здесь и добавили тип данных столбца, чтобы продемонстрировать разницу. Обратите внимание, что тип данных третьего столбца:
Имея varchar
представление прекрасно подходит с другим СУБД, как it can be converted within C#, но с SQL Server является предпочтительным, чтобы он соответствовал соответствующему типу данных. Это упростит создание представлений (из-за встроенных функций типа данных).
Я знаю, что тип не поддерживается EF4 (не уверен около 5). Я также просмотрел файл OrmLiteDialectProviderBase.cs на GitHub, и я вижу список поддерживаемых типов данных ADO.NET.
Мой простой вопрос: Является ли это сильным ограничением ADO.NET, или это можно увидеть когда-нибудь в OrmLite? Я готов помочь продлить эту часть, если будут сделаны какие-либо предложения.
Можете ли вы показать пример кода SQL +, который вы хотели бы поддержать OrmLite? – mythz
Не уверен, что делает OrmLite, но похоже, что он должен соответствовать строковому типу, поскольку он содержит данные типа '/ 123/234/125'. – RedFilter
@mythz: Посмотрите отредактированный вопрос –