私はこのようなものを持っています:
modelBuilder.Entity<TransactionHistory>()
.HasOptional(history => history.Sender)
.WithMany()
.Map(s => s.MapKey("Sender"))
.WillCascadeOnDelete(false);
modelBuilder.Entity<TransactionHistory>()
.HasOptional(history => history.Receiver)
.WithMany()
.Map(s => s.MapKey("Receiver"))
.WillCascadeOnDelete(false);
また、私のテーブル TransactionHistory では、Sender 列と Receiver 列に一意の識別子が作成されます。これらの列を一意にしたくないのですが、どうすればよいですか?
TransactionHistory モデル:
public class TransactionHistory
{
public Account Sender { get; set; }
public Account Receiver { get; set; }
}
編集:わかりました。どうやらuniqueidentifiersはそうではありません。問題は、トランザクション履歴アイテムをデータベースに追加しているときに、次のエラーが発生したことです。
PRIMARY KEY 制約 'PK_dbo.Accounts' に違反しています。オブジェクト 'dbo.Accounts' に重複するキーを挿入できません。\r\nステートメントは終了しました。
このアイテムを次のように追加します。
context.Transactions.Add(history);
context.savechanges();
(Transactions は transactionhistory オブジェクトです)