Fluent Nhibernate: inserire errore quando si salva una nuova entità con un'entità figlio
-
19-09-2019 - |
Domanda
Sto cercando di salvare un nuovo "post" di entità con 1 elemento aggiunto all'elenco "revisioni".
UN Post
può avere molti PostRevisions
, e a PostRevision
può averne solo uno Post
.
Ho provato diversi modi per mappare i postrevisions, la mia maestria postrevision è la seguente:
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
}
Quando chiami Saveoropate ricevo errori diversi
Opzione 1 e 3 Causa
The INSERT statement conflicted with the FOREIGN KEY constraint "PostId".
Opzione 2 Cause
NHibernate.HibernateException : Unable to resolve property: PostId
Il mio postmap è il seguente:
public PostMap()
{
Id(x => x.PostId).Column("PostId");
HasMany(x => x.Revisions)
.Cascade.All()
.Table("PostRevisions")
.KeyColumn("PostId")
.ForeignKeyConstraintName("FK_PostRevision_Post");
/// OTHER STUFF
}
Qualcuno può indicarmi nella giusta direzione perché non riesco a individuare il problema. Tia
Soluzione
Prova questo:
Postmap
HasMany(x => x.Revisions)
.Inverse()
.Cascade.All();
Postrevisionmap:
References(x => x.Post);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow