我有兩個實體Transaction
和DiscountType
實體框架的一個一對多刪除關係
交易:
public class Transaction
{
[Key]
public int TransactionID { get; set; }
public virtual DiscountType DiscountType { get; set; }
}
DiscountType:
public class DiscountType
{
[Key]
public int DiscountTypeID { get; set; }
public virtual ICollection<Transaction> Transactions { get; set; }
public float DiscountValue { get; set; }
public bool Enabled {get; set;}
}
關係:
modelBuilder.Entity<DiscountType>().HasMany(d => d.Transactions);
目的:
我試圖刪除事務和DiscountType之間的關係,不真正刪除任何一個實體。
問題:
現在我有沒有問題,分配打折交易,但是當我做到以下幾點:
var transaction = context.Transactions.Where(t => t.TransactionID == 1).First();
transaction.DiscountType = context.DiscountTypes.Where(d => d.DiscountTypeID == 1).First();
context.SaveChanges();
var _transaction = context.Transactions.Where(t => t.TransactionID == 1).First();
_transaction.DiscountType = null;
context.SaveChanges();
這是我有一個相當特殊的問題。當這段代碼運行時,它不會消除兩者之間的關係。
實際代碼:
正如你所看到的,在執行= null;
甚至後,它仍然存在。
我是粉絲這些類型的關係的外鍵。 – 2012-03-08 22:21:17
請詳細說明。我是EF新手。 – gunwin 2012-03-08 22:31:30
您是否試過讓您的DiscountType(通過上下文),然後調用DiscountType.Transactions上的.Remove(yourtransaction)?我必須爲EF執行此操作,因爲SaveChanges無法識別關係的更改 - 只有標量值發生更改。 – JasCav 2012-03-08 23:32:53