私は2つのモデルクラスがあります:私は、私は次のエラーを取得するアプリケーションを実行しようとするたびにEntity Frameworkの:外部キー
public class Nurse
{
public int Id { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string Surname { get; set; }
[Required]
public string AddressLine1 { get; set; }
[Required]
public string AddressLine2 { get; set; }
public string AddressLine3 { get; set; }
public string AddressLine4 { get; set; }
[Required]
[EmailAddress]
public string EmailAddress { get; set; }
[Required]
[Phone]
public string ContactNumber { get; set; }
[Required]
public DateTime DateOfBirth { get; set; }
[Required]
public DateTime RegistrationDate { get; set; }
//Foreign Keys
public int PaymentId { get; set; }
[ForeignKey("PaymentId")]
public virtual Payment Payment { get; set; }
public int BranchId { get; set; }
[Required]
[ForeignKey("BranchId")]
public virtual Branch Branch { get; set; }
} // Cls
と
public class Payment
{
public int Id { get; set; }
//Type of String instead of to allow for starting zeros
[RegularExpression("^[0-9]+$")]
public string SortCode { get; set; }
[RegularExpression("^[0-9]+$")]
public string BankAccountNumber { get; set; }
[RegularExpression("^[0-9]+$")]
public string ChequeNumber { get; set; }
public DateTime DateReceived { get; set; }
public string Notes { get; set; }
//Foreign Keys
public int PaymentTypeId { get; set; }
[Required]
[ForeignKey("PaymentTypeId")]
public PaymentType PaymentType { get; set; }
public int NurseId { get; set; }
[Required]
[ForeignKey("NurseId")]
public Nurse Nurse { get; set; }
} // Cls
を:
Exception thrown: 'System.InvalidOperationException' in EntityFramework.dll
Additional information: The ForeignKeyAttribute on property 'Payment' on type 'PNA_Model.Nurse' is not valid. The foreign key name 'PaymentId' was not found on the dependent type 'PNA_Model.Payment'. The Name value should be a comma separated list of foreign key property names.
各支払いは看護師に属するが、すべての看護師が支払いを受けるわけではない。
Paymentの 'Id'プロパティを 'PaymentId'に変更すると、エラーが消えてしまいます。エラーメッセージに応じてどのような意味があるのでしょうか。
しかし、私はEFがこれを理解するのに十分にスマートであると思っていました。他のクラスとその 'Id'プロパティと同様の状況があり、エラーメッセージが表示されません。
アイデア?
ありがとうございました
'ForeignKeyAttribute'を' Payment'の代わりに 'PaymentId'に追加しようとしましたか? – Mats391
EFのどのバージョンを使用していますか? EF6、EFコア? – krillgar
@krillgarバージョン= 6.0.0.0、App.configファイルに従って – Shanie