この例ではすべてを見てきましたが、かなり珍しいようです。うまくいけば、いくつかのNHibernateの達人が知っているだろう。FluentNHibernateで外部キーを使用してValueObjectコレクションをマップする方法
私は、値オブジェクトを理解することによって、値オブジェクトである次のクラスを持っています。すべてのユーザが質問に1つ以上のタグを割り当てる能力を持っていると仮定します(Stack Overflowと考える)。タグにはプライマリキーは必要ありませんが、私はそこにあるValueObjectsの例のほとんどとは異なり、UserとQuestionへの参照を保持しています。
{ "実体『タグ』はマップされたIDを持っていないあなたのIDプロパティをマップするためにID方式を使用して、例えば::。。同上(
public class Tag : ValueObject
{
public virtual User User { get; set; }
public virtual Question Question { get; set; }
public virtual string TagName { get; set; }
}
public class User
{
public virtual IList<Tag> Tags { get; set; }
}
public class Question
{
public virtual IList<Tag> Tags { get; set; }
}
とにかく、私は次のエラーを取得していますX => x.Id) "}
Iユーザーと質問に対する次の流暢NHibernateのマッピングがあります。
public void Override(AutoMapping<XXX> mapping)
{
mapping.HasMany(x => x.Tags).Component(c =>
{
c.Map(x => x.TagName);
c.Map(x => x.Question);
c.Map(x => x.User);
});
}
はいつものように、任意の考えは非常に高く評価します。
遅く更新されました。さて、これは値オブジェクトではない可能性があります。アイデンティティは必要ありませんが、複数の場所で使用できるものではないと思います。オブジェクトに無用なIdフィールドを強制しないでこれを処理する方法はありますか?その値オブジェクトので、その後
public void Override(AutoMapping<XXX> mapping)
{
mapping.HasMany(x => x.Tags).AsBag().Component(c =>
{
c.Map(x => x.TagName);
c.References(x => x.Question);
c.References(x => x.User);
});
}
しかし、あなたカントクエリ(リストすべて)タグ: