أحمق بطلاقة: أدخل خطأ عند حفظ كيان جديد مع كيان الطفل

StackOverflow https://stackoverflow.com/questions/2232857

  •  19-09-2019
  •  | 
  •  

سؤال

أحاول حفظ كيان جديد "مشاركة" مع عنصر واحد تمت إضافته إلى قائمة "المراجعات".

أ Post يمكن أن يكون الكثير PostRevisions, و PostRevision يمكن أن يكون فقط واحدة Post.

لقد جربت عدة طرق لرسم خرائط الاتفاقية، فإن postrevisionmap كما يلي:

 public PostRevisionMap()
    {
        Id(x => x.PostRevisionId, "PostRevisionId");
        Map(x => x.Created, "CreateDateTime").Not.Nullable();
       /// SOME OTHER STUFF HERE
        References(x => x.Post, "PostId"); // OPTION 1

        References(x => x.Post,"PostId").ForeignKey("PostId").PropertyRef(d => d.PostId);  // OPTION 2

        HasOne<Post>(x => x.Post).ForeignKey("PostId").Cascade.All().PropertyRef(x => x.PostId); // OPTION 3
    }

عند الاتصال Savorupate أحصل على أخطاء مختلفة

الخيار 1 و 3 السبب

The INSERT statement conflicted with the FOREIGN KEY constraint "PostId".

الخيار 2 الأسباب

NHibernate.HibernateException : Unable to resolve property: PostId

بلدي postmap هو كما يلي:

   public PostMap()
    {
        Id(x => x.PostId).Column("PostId");

        HasMany(x => x.Revisions)
            .Cascade.All()
            .Table("PostRevisions")
            .KeyColumn("PostId")
            .ForeignKeyConstraintName("FK_PostRevision_Post");

       /// OTHER STUFF
    }

هل يمكن لأي شخص أن يوجهني في الاتجاه الصحيح لأنني لا أستطيع تحديد المشكلة. تيا

هل كانت مفيدة؟

المحلول

جرب هذا:

paesmap.

HasMany(x => x.Revisions)
    .Inverse()
    .Cascade.All();

postrevisionmap:

References(x => x.Post);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top