0
我正在處理借貸系統。 我有2張桌子。貸款和工具。一筆貸款可以有更多的工具。數據庫設計,one2many,表之間的雙向依賴關係
public class Loan
{
[Key]
public int LoanId { get; set; }
[Required]
public DateTime WhenBorrowed { get; set; }
public DateTime? WhenReturned { get; set; }
// foreign key to Tool
public virtual ICollection<Tool> Tools { get; set; }
}
public class Tool
{
// Primary key
public int ToolId { get; set; }
[Required]
public string Name { get; set; }
// foreign key to Loan
public int? LoanId { get; set; }
public virtual Loan Loan { get; set; }
}
我要問這樣的問題:
- 工具的可用性 - 借/未借。
我通過在工具表中使用LoanId來解決這個問題,檢查它是否爲null。
歷史交易
在這裏,我有一個問題。該icollections似乎只包含Tool table的外鍵。因此,當我將LoanId設置爲空(表示該工具已返回並且可以再次借用)時,我將失去歷史記錄。 我應該如何解決這個問題。我應該在貸款表中定義另一個外鍵嗎?就像這樣:
// foreign key to Tool public IList<int> ToolId { get; set; } public virtual Tool Tool { get; set; }
好像在國外鑰匙給我循環依賴。什麼是實現所需功能的正確途徑?
感謝您的任何建議。
感謝您的快速回復。也許最好使用第三個表...爲此。 – user3463614
基本上,它必須是多對多的關係,而不是一對多...... – user3463614