2

私は次のクラスを持っています:

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 のインデックスである必要があります。

どうすればいいですか?

4

0 に答える 0