Unityを介してデータソース(Navision)に緩くバインドされた大規模なシステムがあります。それを交換して、独自のデータベースを作成する機会を得ています。
ですから、私たちは周りを見回して、Fluent NHibernateの外観を本当に気に入っています。概念実証を取得し、いくつかのサービスを交換しようとしています。
NHibernates HiLoアルゴリズムを使用したい-残念ながら、Navisionから文字列IDを継承しました。これはIDのプレフィックス(例COL00001)であるため、インターフェイスに一致させるには、文字列IDを使用する必要があります。
誰かが私がどのように何かを得るのか知っていますか...
Id(x => x.ID).GeneratedBy.HiLo("100");
IDが文字列である場合に機能しますか?現在、IDはint、longなどである必要があります
ありがとう、
アンディ
- - - アップデート - - -
提案された記事の例を試しましたが、この機能はFluent NHibernateの新しいバージョンから削除されました-ただし、.Customがあります-しかし、それを機能させることができないようです!
public class ManufacturerMap : ClassMap<Manufacturer>
{
public ManufacturerMap()
{
Id(x => x.ID).GeneratedBy.Custom(typeof(StringTableHiLoGenerator));
Map(x => x.Name);
}
}
public class StringTableHiLoGenerator : TableHiLoGenerator
{
public override object Generate(ISessionImplementor session, object obj)
{
return base.Generate(session, obj).ToString();
}
}