2009-02-13 43 views
7

进出口使用的AutoPersistenceModel在功能NHibernate我的所有实体映射许多公约,一切工作正常:d流利的NHibernate多为类型

然而,我的几个对象都

public virtual IList<Comment> Comments { get; set; } 

在数据库有一个注释表,每个实体都有上面的代码,它有自己的注释链接表。

目前什么IM做的是:

public class ContractMappingOverride : IAutoMappingOverride<Contract> 
{ 
    public void Override(AutoMap<Contract> mapping) 
    { 
     mapping.HasManyToMany(x => x.Comments) 
      .WithTableName("Comment_Contract"); 

每一个实体。

有没有什么办法可以设置一个会议,通过IList的所有映射<评论>与上述表名约定自动连接起来很多很多?

感谢

安德鲁

回答

5

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

在当前的流利NHibernate设计中,没有办法将约定应用到集合中,同时知道它们的使用类型,您可以将所有集合应用到不依赖于它们所包含的类型的东西。这是我们设计中的一个缺陷,我打算纠正这个问题,但这是一个相当大的变化,所以不会在一夜之间发生。

我建议你用我们的mailing list检查,我们通常会在那里发布更新。

对不起,我不能提供更多的帮助。

+1

够公平的,谢谢你的信息。我会查看源代码,看看我是否可以将补丁放在一起'因为我真的很喜欢这个功能。 – 2009-02-15 11:48:10

+0

我对这个问题增加了一个答案James,如果我的假设是正确的或如果我脱离了基础,那么如果你可以添加评论,那将是非常好的。 – 2009-12-16 21:06:35

0

自从我和Fluent NHibernate一起工作已经有一段时间了,我刚刚回到了它的摆动中(哇!自09年初以来有很多变化!),我想现在你的问题的答案是是的,你可以用OverideAll功能来做到这一点。

在FNH wiki上查看Overrides