私は次のクラスを持っています:
public class Event
{
public virtual Guid Id { get; set; }
public virtual string UserName { get; set; }
public virtual EventId EventId { get; set; }
}
public class EventId
{
public virtual Guid EventGuid {get; private set;}
}
クラスをマップするために流暢な NHibernate 自動マッピングを使用しており、必要に応じて特定のプロパティをオーバーライドしています。
Class: Event は s_typesToMap にあり、class: EventId は s_components にあります。
その結果、次のテーブルが生成されます。
create table "Event" (
Id UNIQUEIDENTIFIER not null,
UserName NVARCHAR(255) null,
EventIdentifierEventGuid UNIQUEIDENTIFIER null,
primary key (Id)
)
Event コンポーネントのプロパティである EventIdentifierEventGuid にインデックスを作成したいと考えています。
私は次のようにそれをやろうとしました:
.Override<Event>(obj => obj.Map(x => x.EventId.EventGuid).Index("EventId_index"))
ddl を生成すると、次のようになります。
create index EventId_index on "Event" (EventGuid)
期待される結果は、EventGuid ではなく EventIdentifierEventGuid のインデックスである必要があります。
どうすればいいですか?