C# 搜索等效Fluent Nhibernate映射-映射映射为字典

C# 搜索等效Fluent Nhibernate映射-映射映射为字典,c#,fluent-nhibernate,nhibernate-mapping,C#,Fluent Nhibernate,Nhibernate Mapping,我在NHibernate2.1中为以下基于属性的映射搜索等效的Fluent映射 [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")] [IndexManyToMa

我在NHibernate2.1中为以下基于属性的映射搜索等效的Fluent映射

[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; }


}
[类别(物品类型,Table=“ARTIKEL”)]
公共类文章{
[Id(0,Name=“Id”,Column=“Id”)]
公共虚拟整数Id{get;set;}
[地图(0)]
[关键字(1,Column=“main article”)]
[indexmanytomy(2,ClassType=typeof(Article),Column=“ChildArticle”)]
[元素(3,Column=“Amount”,NotNull=true)]
公共虚拟IDictionary Bundle{get;set;}
}
我无法获得NHibernate 3.0的流畅映射

我最终得到了

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

这导致访问字典时出现“非法访问加载集合”异常…

最终我得到了一个有效的解决方案:

HasManyToMany(x => x.Bundle)
    .ParentKeyColumn("MainArticle")
    .ChildKyColumn("ChildArticle")
    .AsEntityMap("ChildArticle")
    .Element("Amount");
HasMany(x => x.Bundle).Table("bundles").KeyColumn("MainArticle").AsEntityMap("ChildArticle").Element("Amount", part => part.Type<decimal>());
HasMany(x=>x.Bundle).Table(“bundles”).KeyColumn(“main article”).AsEntityMap(“ChildArticle”).Element(“Amount”,part=>part.Type());

在我的情况下工作。

AsEntityMap在Fluent NHibernate 3.0上没有签名
AsEntityMap(字符串)