C# 流利的Nhibernate有许多带noop地图的两边

C# 流利的Nhibernate有许多带noop地图的两边,c#,nhibernate,fluent-nhibernate,poco,domain-model,C#,Nhibernate,Fluent Nhibernate,Poco,Domain Model,我试图将POCO映射为多对多关系。我不希望行为上的属性包含BehavioralEvents。我非常确定多对多映射必须在这两个位置,但是我不希望行为类上有相应的属性 我听说你可以使用无操作访问操作符,但我不知道如何使用流利的Nhibernate 请告知: public class BehavioralEvent : AggregateRoot { protected internal IList<Behavior> Behaviors {

我试图将POCO映射为多对多关系。我不希望行为上的属性包含BehavioralEvents。我非常确定多对多映射必须在这两个位置,但是我不希望行为类上有相应的属性

我听说你可以使用无操作访问操作符,但我不知道如何使用流利的Nhibernate

请告知:

public class BehavioralEvent : AggregateRoot    
    {       
        protected internal IList<Behavior> Behaviors { get; private set; }

        public BehavioralEvent()
        {
            Behaviors = new List<Behavior>();
        }
    }
BehavioralEventClassMap:

public class BehavioralEventClassMap : ClassMap<BehavioralEvent>
    {
        public BehavioralEventClassMap()
        {
            Id(x => x.Id, "BehavioralEventId").GeneratedBy.Assigned();

            HasManyToMany(x => x.Behaviors)
                .Cascade.All()
                .Table("BehaviorData")
                .ParentKeyColumn("BehavioralEventId")
                .ChildKeyColumn("BehaviorId");
        }
    }
公共类行为类映射:类映射
{
公共行为LeventClassMap()
{
Id(x=>x.Id,“BehavioralEventId”).GeneratedBy.Assigned();
HasManyToMany(x=>x.Behaviors)
.Cascade.All()
.表格(“行为数据”)
.ParentKeyColumn(“BehavioralEventId”)
.ChildKeyColumn(“行为主义者”);
}
}
BehaviorClassMap:

public class BehaviorClassMap : ClassMap<Behavior>
{
    public BehaviorClassMap()
    {
        Table("Behaviors");
        Id(x => x.Id, "BehaviorId").GeneratedBy.Assigned();
        Map(x => x.Name).Not.Nullable();
        Map(x => x.Definition); 
    }
}
公共类行为ClassMap:ClassMap
{
公共行为ClassMap()
{
表(“行为”);
Id(x=>x.Id,“BehaviorId”).GeneratedBy.Assigned();
Map(x=>x.Name).Not.Nullable();
Map(x=>x.Definition);
}
}

您不需要从两侧映射它

我有如下各种映射:

HasManyToMany(x => x.SomeCollection).Table("MappingTable").ParentKeyColumn("ParentKey").ChildKeyColumn("ChildKey").Cascade.AllDeleteOrphan();

工作起来很有魅力!将其映射为集合或集合(请参阅)。

如果不需要来自行为,则不要添加映射。 如果您需要并且不想执行put操作,请使用Cascade.None()

HasManyToMany(x => x.SomeCollection).Table("MappingTable").ParentKeyColumn("ParentKey").ChildKeyColumn("ChildKey").Cascade.AllDeleteOrphan();