我在實體框架中與POCOS建立了ManyToMany關係。實體框架4.0 - 多對多關係在映射的左側插入記錄,不僅在關係表中
我有一個名爲Transaction的表,它有一個TransactionId列和其他一些列,這是我想插入的實體,一個名爲Reason的表是一個具有ReasonId和ReasonDescription列的目錄表,我也有一個名爲Transaction_Reason的表來保存關係,這個表有2個稱爲ReasonId和TransactionId的列,並在其各自的表中具有前綴關鍵字。
在爲EF我TRANSATION配置我在構造函數如下:
base.HasKey(t => new { t.TransactionId }).HasMany(c => c.Reasons).WithMany(r => r.Transactions)
.Map(t =>
{
t.MapRightKey("ReasonId");
t.MapLeftKey("TransactionId");
t.ToTable("Transaction_Reason");
});
的關係做得正確,我得到插在我Transaction_ReasonTable紀錄,但每當我查原因表我也得到記錄在這裏創建時,這應該只是一個目錄表。
繼承人我插入代碼:
if (reasons != null)
{
foreach (var item in reasons)
{
Reason reason = _reasonReopository.Find(item);
transaction.Reasons.Add(reason);
}
}
transaction = this._repository.Create(transaction);
this._repository.Commit();
我只希望有插在我的交易表這是我創造我的保存方法,並在關係保存在Transaction_Reason表中的記錄的記錄,不在我的原因目錄表中。
有沒有人有任何想法如何避免這種情況?