【问题标题】:FluentNHibernate unidirectional many-to-many associationFluentNHibernate 单向多对多关联
【发布时间】:2012-07-16 21:08:30
【问题描述】:

我遇到了多对多映射的问题。这就是我所拥有的:

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”中插入任何东西

感谢您的帮助, 丹

【问题讨论】:

    标签: c# nhibernate fluent-nhibernate fluent-nhibernate-mapping


    【解决方案1】:

    映射是正确的。

    我正在使用几乎相同的结构、相同的映射、NHibernate 3.3.1.4000、SQL Server 2005,它工作正常。唯一的区别是我在主对象的构造函数中初始化列表。我还允许 NH 创建模式,包括。关系表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多