2016-09-19 7 views
2

私はASP.NET CoreとEF Coreを使用していますが、次の2つの親子クラスがあります。各ギフトカードは、多くのトランザクションを持つことができます。データアノテーションを使用したEFコアマイグレーションで、外部キーをNOT NULLにする方法はありますか?

私が読んだものに基づいて
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でないことを確認したい。データ注釈属性がありませんか?

答えて

2

Transactionエンティティに次のプロパティを設定し、解決する必要があります。あなたの定義と何が起こっている

public int GiftCardId { get; set; }

はshadowプロパティが作成されているとEFの変更トラッカー関係を維持していることです。

hereを参照してください。

関連する問題