2013-12-09 3 views
0

У меня есть две таблицы «напомнить» и «сервис», и мне нужно много и много между ними. Я использую свободно отображение NHibernate, но это создает дополнительную таблицу с именем «servicetorecall»беглый NHibernate много для многих создает дополнительную таблицу

  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(); 

    } 
} 

Я попытался изменить каскады, но это не помогло. Также я сделал то же самое с другими объектами, и он корректно работает над тем, какой тип магии это?

ответ

1

Как вы определяете "правильные", чего вы хотите достичь? Я никогда не слышал о каком-либо чистом решении для многих-многих отношений, которые не использовать сводную таблицу.


[быстрый взгляд на ваших отображений]: только один из "ManyToMany" должна быть обратная

Смежные вопросы