使用Fluent NHibernate映射字典

时间:2012-08-01 14:37:02

标签: nhibernate fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我很容易映射

IDictionary<SomeMappedEntity, string>

但现在我正在尝试映射

IDictionary<Manufacturer, Template> DefaultTemplates { get; set; }

其中ManufacturerTemplate都是映射实体。

我有以下数据库模型

enter image description here

我试图映射以下实体:

class Client
{
    public virtual Int64 Id { get; set; }
    public virtual IDictionary<Manufacturer, Template> Templates { get; set; }
}

使用此映射:

public class ClientMap: ClassMap<Client>
{
    public ClientMap()
    {
        Table("\"CLIENT\"");
        LazyLoad();            
        Id(x => x.Id, "id").GeneratedBy.HiLo("hilo", "hilo_client", "50");

        HasMany(x => x.Templates).Table("\"CLIENT_DEFAULT_MANUFACTURER_TEMPLATE_MAP\"")
                                 .AsEntityMap("fk_id_manufacturer")
                                 .KeyColumn("fk_id_client")                                                        
                                 .Element("fk_id_template");
    }
}

但是在使用

构建会话工厂期间失败了
NHibernate.MappingException:
  Could not determine type for: AppServer.Domain.Entities.Template, AppServer.Domain, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, for columns: NHibernate.Mapping.Column(fk_id_template)

我使用相同的映射技术来映射IDictionary<SomeEntity, string>,并且它运行良好。

我还尝试了其他几种变种,包括AsMap(),但没有任何对我有用。

0 个答案:

没有答案