簡體   English   中英

流利的NHibernate,具有鍵/值列關系

[英]Fluent NHibernate with Key/Value Column Relation

我正在嘗試創建一個表,該表將用作另一個表的其他數據。

  • 例如,我有一個名為Person的主表。 該表將包含零個或多個來自稱為PersonDynamicInfo的表的動態記錄(自由文本鍵和自由文本值)。

    公共PersonMap(){Id(x => x.Id); Table(“ Person”); Map(x => x.Name);

    HasMany(x => x.PersonDynamicInfo).KeyColumn(“ Id”).Access.CamelCaseField(Prefix.Underscore).AsSet().Cascade.AllDeleteOrphan().Not.KeyNullable(); }

    公共PersonDynamicInfo(){Id(x => x.Id); Table(“ PersonDynamicInfo”); Map(x => x.Key);
    映射(x => x.Value); }

我要實現以下目標:

  • 訪問Person對象時,我希望能夠編輯Person.PersonDynamicInfo,以使此表上的信息與該對象相同。 例如,假設我創建了一個在PersonDynamicInfo上具有記錄的人,其值是:“ 鍵: A | :TEST ”。 當我訪問Person對象時,我將從集合中刪除所有Person.PersonDynamicInfo並添加一個新對象:“ 鍵: B | :TEST ”並保存()此Person對象。 將會發生的是Person.PersonDynamicInfo將包含兩個記錄,而不是僅包含最后一個。

有沒有我可以手動刪除PersonDynamicInfo上未使用的記錄的方法?

非常感謝!

我認為您需要的是在PersonDynamicInfo映射中對Person的引用:

public PersonDynamicInfo(){ 
    Id(x => x.Id); 
    Table("PersonDynamicInfo"); 
    Map(x => x.Key);
    Map(x => x.Value);
    References(x => x.Person, "PersonId").Cascade.All(); 
} 

但是,我可能誤解了您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM