2つのエンティティクラス(自動マッピングを簡単にするための共通のインターフェイスを使用)があり、一方には他方への一般的な参照があります。
public interface IModelClass
{
Guid Id { get; set; }
}
class Order : IModelClass
{
public virtual Guid Id { get; set; }
public virtual ISet<Attachment> Attachments { get; set; }
}
class Attachment : IModelClass
{
public virtual Guid Id { get; set; }
public virtual IModelClass AttachedTo { get; set; }
}
ジェネリックリファレンスは次のように定義できますReferencesAny
:
mapping.ReferencesAny(x => x.AttachedTo)
.EntityTypeColumn("entity_type")
.EntityIdentifierColumn("entity_id")
.IdentityType<Guid>()
.MetaType<string>()
.AddMetaValue<Order>("ORDER")
.Cascade.None();
そして、これは、アタッチメントを直接操作するだけで、横から物事をやろうとしない限り、問題なく機能しますOrder
。しかし、私が欲しいのは、関係の逆をマッピングすることです。つまり、通常は次のように処理されます。
mapping.HasMany(x => x.Attachments)
たとえば、注文のコレクションに添付ファイルを追加して、各添付ファイルを手動で設定/保存しなくても永続化できるようにします(添付ファイルをコミットするには、セッションの受け渡しを開始する必要があります)。同じトランザクション)。これは機能しません。正常に機能order_id
し、添付ファイルテーブルに列を作成します。
このマッピングを「機能する」ように設定する方法はありますか?