0
私は貸出システムに取り組んでいます。 私は2つのテーブルを持っています。ローンとツール。 1つのローンには、より多くのツールがあります。データベース設計、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は、ツールテーブルへの外部キーだけを含むようです。だから、LoanIdをnullに戻すと(ツールが返され、再び借りることができることを示すために)、私は履歴を失います。 これをどのように解決すればよいですか?ローンテーブルにも別の外部キーを定義する必要がありますか?このように:
// foreign key to Tool
public IList<int> ToolId { get; set; }
public virtual Tool Tool { get; set; }
それは私には外部キーでの循環依存のように思えます。必要な機能を達成するための正しい方法は何ですか?
ありがとうございます。
ありがとうございました。たぶん3番目のテーブルを使用するのが最善です...これのために。 – user3463614
基本的には、多くのものから多くのものと多くのものとの関係でなければなりません... – user3463614