1

NHibernate2.1で次の属性ベースのマッピングに相当するFluentMappingを検索します

[Class(typeof(Article), Table = "ARTIKEL")]
public class Article  {


  [Id(0, Name = "Id", Column = "Id")]
  public virtual int Id { get; set; }


  [Map(0)]
  [Key(1, Column = "MainArticle")]
  [IndexManyToMany(2, ClassType = typeof(Article), Column = "ChildArticle")]
  [Element(3, Column = "Amount", NotNull = true)]
  public virtual IDictionary<Article, decimal> Bundle { get; set; }


}

NHibernate3.0で動作するFluentMappingを取得できません。

私は

HasManyToMany<Article>().ParentKeyColumn("MainArticle").ChildKyColumn("ChildArticle").AsMap<int>("Amount");

これにより、ディクショナリへのアクセス中に「コレクションのロードに不正なアクセス」例外が発生します。

4

2 に答える 2

0
HasManyToMany(x => x.Bundle)
    .ParentKeyColumn("MainArticle")
    .ChildKyColumn("ChildArticle")
    .AsEntityMap("ChildArticle")
    .Element("Amount");
于 2012-04-18T06:02:09.170 に答える
0

最後に、私は実用的な解決策を得ました:

HasMany(x => x.Bundle).Table("bundles").KeyColumn("MainArticle").AsEntityMap("ChildArticle").Element("Amount", part => part.Type<decimal>());

私の場合はうまくいきました。

于 2012-04-20T17:02:13.243 に答える