私は自分の仕事の多くを単純化する天才タイプについて学びましたが、私の好みのORMはそれを認識していないようです。
ServiceStackOrmLiteがSQLServerで認識できるようにするための回避策はありHierarchyId
ますか?変更するファイルに関する提案や、続行するためのヒントはありますか?
編集 :
これが問題のより良い例です。私は次のクラスを持っています:
public class MyClass
{
public int Id { get; set; }
public SqlHierarchyId HierarchyId { get; set; }
}
SqlHierarchyIdは、カスタムSQLServerデータ型です。OrmLiteは、次のクラスを生成します。
[StringLength(255)]
おかしなことに、プロパティの属性を使用すると、varchar(255)
代わりにタイプが取得されます。
ここでテーブルを手動で変更し、違いを示すために列のデータ型を追加しました。3番目の列のデータ型に注意してください。
表現を持つことは、 C#内で変換できるためvarchar
、他のDBMSでもまったく問題ありませんが、SQL Serverでは、対応するデータ型と一致させることが望ましいです。これにより、ビューの作成が簡単になります(データ型の組み込み関数のため)。hierarchyid
このタイプはEF4でサポートされていないことを知っています(5についてはわかりません)。また、GitHubでOrmLiteDialectProviderBase.csファイルを参照すると、サポートされているADO.NETデータ型のリストを確認できます。
私の簡単な質問は次のとおりです。これはADO.NETによる強力な制限ですか、それともOrmLiteでいつか見られる可能性がありますか?何か提案があれば、この部分の拡張を喜んでお手伝いします。