データアノテーションを使用してEFコアマイグレーションで外部キーをNOT NULLにするにはどうすればよいですか?

ef-migrations entity-framework-core

質問

私はASP.NET CoreとEF Coreを使用していますが、次の2つの親クラスと子クラスがあります。各ギフトカードには多くの取引があります:

public class GiftCard
{
    public int Id { get; set; }
    public string BarCode { get; set; }
    public DateTime PurchaseDate { get; set; }
    public string Comments { get; set; }
    public byte[] Timestamp { get; set; }
    public List<Transaction.Transaction> Transactions { get; set; }
}

public class Transaction
{
    public int Id { get; set; }
    public DateTime TransactionDate { get; set; }
    public decimal TransactionAmount { get; set; }
    public TransactionType TransactionType { get; set; }
    public byte[] Timestamp { get; set; }
    public GiftCard.GiftCard GiftCard { get; set; }
}    

私が読んだことに基づいて、これは子供の親ナビゲーションと参照ナビゲーションにナビゲーションプロパティを持たせることでそれを行う方法です。マイグレーションを追加してコマンドラインを使用してデータベースを更新すると、TransactionsテーブルのGiftCardId外部キーがNULL可能であることを除いて、データベース内のすべてが正常であるように見えました。私はこれがNULLでないことを確認したい。データ注釈属性がありませんか?

受け入れられた回答

あなたのTransactionエンティティに次のプロパティを置き、それを解決する必要があります。

public int GiftCardId { get; set; }

あなたの定義で起こっていることは、シャドープロパティが作成され、EFのチェンジトラッカーが関係を維持しているということです。

ここを参照してください



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ