【问题标题】:fluent NHibernate many to many creates additional table流利的 NHibernate 多对多创建附加表
【发布时间】:2013-12-09 06:35:19
【问题描述】:

我有两个表“召回”和“服务”,我需要它们之间的多对多。 我使用流利的 NHibernate 映射,但它创建了名为“servicetorecall”的附加表

           public class Recall : BaseDomain
{
    public virtual string Name { get; set; }
    public virtual string PersonPosition { get; set; }
    public virtual string RecallText { get; set; }


    private ICollection<Service> _services = new List<Service>();
    public virtual ICollection<Service> Services
    {
        get { return _services; }
        set { _services = value; }
    } 
}

    public class Service : BaseDomain
{
    public virtual string Name { get; set; }
    public virtual string Url { get; set; }
    public virtual string ImgPath { get; set; }
    public virtual string ShortContent { get; set; }
    public virtual string Content { get; set; }
    public virtual bool ServiceIsVisible { get; set; }

    ICollection<Recall> _recalls = new List<Recall>();
    public virtual ICollection<Recall> Recalls
    {
        get { return _recalls; }
        set { _recalls = value; }
    } 
}

映射:

 class RecallMappingOverride : IAutoMappingOverride<Recall>
{
    public void Override(AutoMapping<Recall> mapping)
    {
        mapping.Cache.ReadWrite();
        mapping.HasManyToMany(q => q.Services).Table(MappingNames.RECALLS_RELATIONS)
            .ParentKeyColumn(MappingNames.RECALL_ID)
            .ChildKeyColumn(MappingNames.SERVICE_ID).Inverse().Cascade.All();

    }
}


public class ServiceMappingOverride : IAutoMappingOverride<Service>
{
    public void Override(AutoMapping<Service> mapping)
    {
        mapping.Cache.ReadWrite();
        mapping.HasManyToMany(q => q.Recalls).Table(MappingNames.RECALLS_RELATIONS)                  .ParentKeyColumn(MappingNames.SERVICE_ID).ChildKeyColumn(MappingNames.RECALL_ID)
               .Inverse().Cascade.All();

    }
}

我尝试更改级联,但这没有帮助。我也对其他实体做了同样的事情,它可以正常工作它是什么类型的魔法?

【问题讨论】:

    标签: nhibernate fluent-nhibernate


    【解决方案1】:

    你如何定义“正确”,你想达到什么? 我从未听说过使用数据透视表的多对多关系的任何干净解决方案。


    [快速浏览您的映射]:“ManyToMany”中只有一个应该是 Inverse

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多