Fluent nhibernate Fluent NHibernate多对多约定类型

Fluent nhibernate Fluent NHibernate多对多约定类型,fluent-nhibernate,Fluent Nhibernate,我使用Fluent NHIbernate中的AutoPersistenceModel来映射我的所有实体,并且所有实体都工作正常:D 然而,我的几个对象已经 public virtual IList<Comment> Comments { get; set; } 公共虚拟IList注释{get;set;} 在数据库中有一个注释表,具有上述代码的每个实体都有自己的注释链接表 目前我正在做的是: public class ContractMappingOverride : IAutoM

我使用Fluent NHIbernate中的AutoPersistenceModel来映射我的所有实体,并且所有实体都工作正常:D

然而,我的几个对象已经

public virtual IList<Comment> Comments { get; set; }
公共虚拟IList注释{get;set;}
在数据库中有一个注释表,具有上述代码的每个实体都有自己的注释链接表

目前我正在做的是:

public class ContractMappingOverride : IAutoMappingOverride<Contract>
{
    public void Override(AutoMap<Contract> mapping)
    {
        mapping.HasManyToMany(x => x.Comments)
            .WithTableName("Comment_Contract");
公共类ContractMappingOverride:IAutoMappingOverride
{
公共无效替代(自动映射映射)
{
mapping.HasManyToMany(x=>x.Comments)
.带有表格名称(“评论合同”);
对于每个实体

是否有某种方法可以设置一个约定,其中所有到IList的映射都会自动连接到具有上述表名约定的许多映射

谢谢


安德鲁

我知道这不是你想听的,但答案是否定的

在当前Fluent NHibernate的设计中,没有一种方法可以在了解集合所使用的类型的同时将约定应用于集合,您可以将某些内容应用于所有集合,但这并不取决于它们所包含的类型。这是我们设计中的一个缺陷,我的目的是纠正这一点,但这是一个相当大的更改,因此不会发生一夜之间发生的

我建议你与我们的网站联系,我们通常会在那里发布更新


对不起,我帮不上什么忙了。

我已经有一段时间没有使用Fluent NHibernate了,现在又开始使用它了(哇,自09年初以来已经有了很多变化!),我想现在对你的问题的答案是肯定的,你可以通过全面的功能实现这一点


看看FNH维基。

很公平,谢谢你提供的信息。我会查看源代码,看看是否可以组装一个补丁,因为我真的很喜欢这个功能。我为这个问题添加了一个答案James,如果我的假设是正确的,或者如果我不正确,你可以添加一条评论,那就太好了。我认为什么会非常有用呢要有一个非泛型版本的覆盖。这样,通过使用反射旋转属性来执行一些基于约定的覆盖就相对容易了。@James请在完成此操作后随时更新答案。不幸的是,我认为OverrideAll只能(当前)执行用于忽略任何实体上的属性,而不是Andrew正在寻找的属性。