1

我有一個ManyToMany映射的問題。這是我有:FluentNHibernate單向多對多關聯

public class Asset 
{ 
    public virtual int id {get;set;} 
    //other props 
    public virtual IList<Tag> Tags { get; set; } 
} 

public class Tag 
{ 
    public virtual int Id { get; set; } 
    public virtual string Description { get; set; } 
    public virtual string Slug { get; set; } 
} 

映射單向許多一對多

public class AssetMap : IAutoMappingOverride<Asset> 
{ 

    public void Override(AutoMapping<Asset> mapping) 
    { 
     mapping.HasManyToMany(x => x.Tags) 
     .Table("AssetTag") 
     .ParentKeyColumn("AssetId") 
     .ChildKeyColumn("TagId") 
     .Cascade.SaveUpdate(); 
    } 
} 

我的第一個問題是:是的映射嗎?

目前:

var asset = new Asset 
    { 
     //props 
    }; 

asset.Tags.Add(new Tag{...}); 
repository.Save(asset) 

它插入標籤,但它並沒有在中間表中插入任何「ASSETTAG」

var asset = new Asset 
    { 
     //props 
    }; 

asset.Tags.Add(existing TAG); 
repository.Save(asset) 

它插入資產,但它不插入任何中間表「AssetTag」

感謝您的幫助, 丹

回答

0

映射是正確的。

我使用幾乎完全相同的結構,相同的映射,NHibernate的3.3.1.4000,SQL Server 2005,它工作正常。唯一的區別是我正在初始化主對象的構造函數中的列表。我也允許NH創建模式,包括。關係表。