Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NHibernate fluent更新问题(一对多关系)_C#_Nhibernate_Fluent Nhibernate - Fatal编程技术网

C# NHibernate fluent更新问题(一对多关系)

C# NHibernate fluent更新问题(一对多关系),c#,nhibernate,fluent-nhibernate,C#,Nhibernate,Fluent Nhibernate,我有一个对象OtherFaclilityEntity,其中包含其他FCS对象的IList,映射如下: public OtherFacilityMap() { Schema("SOME"); Table("OTHER_FACILITY"); Id(x => x.Id, "OTHER_FACILITY_S").GeneratedBy.TriggerIdentity(); Map(x => x.RowCrea

我有一个对象OtherFaclilityEntity,其中包含其他FCS对象的IList,映射如下:

    public OtherFacilityMap()
    {
        Schema("SOME");
        Table("OTHER_FACILITY");

        Id(x => x.Id, "OTHER_FACILITY_S").GeneratedBy.TriggerIdentity();
        Map(x => x.RowCreator, "ROW_CREATOR");
        Map(x => x.RowCreateDate, "ROW_CREATE_DATE");
        Map(x => x.Description, "DESCRIPTION");
        Map(x => x.ExistenceKdNm, "R_EXISTENCE_KD_NM");

        References(x => x.FacilityClassItem, "FACILITY_CLASS_S").LazyLoad(Laziness.False).Fetch.Join().Not.Insert().Not.Update();
        HasMany(x => x.FacilityCmList).KeyColumn("WHOLE_S").Fetch.Subselect().Not.LazyLoad();

    }
当我尝试对OtherFacility实体执行SaveOrUpdate时,它也会更新FacilityCmList中的所有实体,这很好,但在上次运行的sql中,它会尝试删除父对象和子对象之间的所有关系:

NHibernate.SQL: 2011-07-19 10:29:33,111 [361] DEBUG NHibernate.SQL [(null)] - UPDATE SOME.FACILITY_CMS SET WHOLE_S = null WHERE WHOLE_S = :p0;:p0 = '26021842'
我想这与我的映射有关,有什么想法吗?

阅读后,我发现我需要在HasMany关系中添加反向

HasMany(x => x.FacilityCmList).KeyColumn("WHOLE_S").Fetch.Subselect().Inverse().Not.LazyLoad();

如图所示,使用“反向”解决了问题:您应该将其标记为答案,而不是注释。由于代表性较低,我必须等待8小时才能完成此操作: