我有一個表或域實體ChargaOperation,它被映射到表[ChargeOperation] 並與它自己有多對多的關係。這就像是抵消了客戶的債務或分配樹(父母和1級子女)。如何將colum(操作時間)添加到多對多關係表中?
ChargeOperation
{
int Id,
decimal Amount,
IList<ChargeOperation> DistributedDebts // a tree of distributions using many to many mapping
}
關係實現了與[Distribtions]表的幫助下,其具有在代碼映射和映射是這樣的:
public ChargeOperationMap()
{
Table("ChargeOperations");
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.Amount).Not.Nullable().Column("Amount");
HasManyToMany(x => x.DistributedDebts).Table("Distributions]")
.ParentKeyColumn("SourceId")
.ChildKeyColumn("SubjectId")
.Cascade.All();
}
表[Distribtutions]具有字段:
- SourceId
Subject ID。
SourceId是一個父代的ChargeOperation.Id & subjectId是一個孩子(IList DistributedDebts之一)。 它是確定的,直到我必須添加一個時間分配的每一個操作和改變[Distribtutions]這樣的表的字段:
- 的sourceID
- SubjectId
- TimeOfOperation
現在只有一個機會去做,就是創建一個分佈圖的映射,打破多對多關係並創建兩個關係一對多關係。 我該如何避免它,只是寫timeOfOperation到[Distribtutions]。 (我閱讀它的視圖,所以它不是一個閱讀的問題)
你絕對應該打破多對多的關係,因爲現在它不是真正的關係。你的發行版現在已經是一個完整的實體(甚至是概念上的),所以只要讓它變得更清晰。 – ovolko