ConfORM Nhibernate OneToManyKeyColumn应用程序问题

ConfORM Nhibernate OneToManyKeyColumn应用程序问题,nhibernate,c#-4.0,conform,Nhibernate,C# 4.0,Conform,我正在我的一个MVC项目中使用ConfORM Nhibernate。并且在一对多映射方面存在问题 IEnumerable<Type> domainEntities = this.GetDomainEntities(); var relationalMapper = new ObjectRelationalMapper(); relationalMapper.TablePerConcreteClass(domainEntities);

我正在我的一个MVC项目中使用ConfORM Nhibernate。并且在一对多映射方面存在问题

        IEnumerable<Type> domainEntities = this.GetDomainEntities();

        var relationalMapper = new ObjectRelationalMapper();
        relationalMapper.TablePerConcreteClass(domainEntities);
        relationalMapper.Patterns.PoidStrategies.Add(new NativePoidPattern());
        relationalMapper.Cascade<Category, Product>(Cascade.All);
        relationalMapper.ManyToMany<Category, Product>();
        relationalMapper.Cascade<Order, Product>(Cascade.Persist);

        var mapper = new Mapper(relationalMapper);
        var englishInflector = new EnglishInflector();

        mapper.PatternsAppliers.Merge(new ClassPluralizedTableApplier(englishInflector));
        mapper.PatternsAppliers.Merge(new OneToManyKeyColumnApplier(relationalMapper));
         .....

        HbmMapping mapping = mapper.CompileMappingFor(domainEntities);
和用户:

 public class User : BaseEntity
{
    public User()
    {
        this.Orders = new HashedSet<Order>();
    }

    public virtual string FirstName { get; set; }       

    public virtual ISet<Order> Orders { get; protected set; }
}
公共类用户:BaseEntity
{
公共用户()
{
this.Orders=new HashedSet();
}
公共虚拟字符串FirstName{get;set;}
公共虚拟ISet命令{get;protected set;}
}
我希望数据库中有这样的关系:Orders.UserId->User.Id。但当Nhibernate生成DB时,我们遇到了这个问题(见图):

UPS。双重引用用户和用户ID突然出现。当我们删除[user]Nhivernate时,它不能做内部连接这个表。不幸的是,两倍的时间: 无效的列名“User”。 无效的列名“User”

我认为设置ConfORM存在一些问题。 如果我删除mapper.patternsappiers.Merge(新的OneToManyKeyColumnApplier(relationalMapper)); ConfORM generete just[用户]参考键

有人知道这里有什么问题吗?
提前感谢。

您需要添加以下应用程序

mapper.PatternsAppliers.Merge(new ManyToOneColumnApplier());
这可能是因为列名从用户端更改了,但从订单端没有更改

mapper.PatternsAppliers.Merge(new ManyToOneColumnApplier());