2012-04-17 65 views
1

我NHibernate的搜索相当的流利映射以下属性为基础的绘图2.1搜索等同功能NHibernate映射 - 映射地图作为字典

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


} 

我没能获得一个工作流利的映射的NHibernate 3.0。

我结束了

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

这将导致一个“非法的存取权限装载集合”异常时访问字典...

回答

0

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

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

在我的情况下工作。

0
HasManyToMany(x => x.Bundle) 
    .ParentKeyColumn("MainArticle") 
    .ChildKyColumn("ChildArticle") 
    .AsEntityMap("ChildArticle") 
    .Element("Amount"); 
+0

AsEntityMap在Fluent NHibernate 3.0上没有签名'AsEntityMap(string)' – Eruphus 2012-04-18 19:10:56