我很容易映射
IDictionary<SomeMappedEntity, string>
但现在我正在尝试映射
IDictionary<Manufacturer, Template> DefaultTemplates { get; set; }
其中Manufacturer
和Template
都是映射实体。
我有以下数据库模型
我试图映射以下实体:
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()
,但没有任何对我有用。