我有一個典型的父母/子女的關係。在.NET
寫新聞並添加小孩工作正常,NHibernate
發揮不錯,並增加了正確的關係。NHibernate + JSON/Ajax父/子關係?爲什麼這不起作用?
但是,當從客戶端傳遞JSON object
到一些將我的JSON序列化爲.NET表示的方法時,NHibernate似乎會感到困惑。它出現了正確的查詢來添加父項(併爲Id分配一個新的guid),但是它不會將該父項ID與其嘗試執行的SQL中的子對象相關聯。我想出了一個快速而骯髒的黑客攻擊,下面列出 - 但我想知道,我在這裏失蹤了什麼?
IList<BackerEntry> backersTemp = new List<BackerEntry>();
foreach (BackerEntry backerEntry in jsonBackerEntity.BackerEntries)
{
backersTemp.Add(backerEntry);
}
jsonBackerEntity.BackerEntries.Clear();
foreach (BackerEntry backerEntry in backersTemp)
{
jsonBackerEntity.AddChild(backerEntry);
}
這樣做是唯一的辦法,我可以似乎讓NHibernate看到這些孩子真的屬於這個父母。裏面我的AddChild方法是這樣的:
public virtual void AddChild(BackerEntry backerEntry)
{
if (backerEntry.Backer != null)
{
backerEntry.Backer.BackerEntries.Remove(backerEntry);
}
backerEntry.Backer = this;
this.BackerEntries.Add(backerEntry);
}
編輯:我想我可能剛剛意識到爲什麼 - 也許是因爲我不是在JSON發回孩子的父母財產。由於二者的循環性質,我甚至不確定這是否可能。孩子有一個父母(在json有一個孩子,是有父母的原始孩子等)......任何想法?