私はEFを初めて使用し、連絡先情報を含むメインテーブルInvestorsと、投資家ごとに多くのメモを持つことができるテーブルNotesとの間の関係を設定する方法を理解するのに苦労しています。モデルは次のとおりです。
public class Investor
{
public int Id { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string Cell { get; set; }
public string Fax { get; set; }
[Display(Name="Address 1")]
public string Address1 { get; set; }
[Display(Name = "Address 2")]
public string Address2 { get; set; }
public string City { get; set; }
[StringLength(2, ErrorMessage = "State must be 2 characters")]
public string State { get; set; }
public string Zip { get; set; }
public string ContactTableId { get; set; }
[ForeignKey("ContactTableId, ContactId")]
public virtual List<Note> Notes { get; set; }
}
public class Note
{
[Key]
[Column(Order = 0)]
public string ContactTableId { get; set; }
[Key]
[Column(Order = 1)]
public int? ContactId { get; set; }
public string note { get; set; }
public DateTime? DateCreated { get; set; }
}
上記のようにこれを設定しようとすると、「関係制約内の従属ロールとプリンシパル ロールのプロパティの数は同じでなければなりません」というエラーが生成されました。声明について:
public ActionResult Index()
{
return View(db.Investors.ToList());
}
コントローラーで。ノートを自動的にプルするように設定するにはどうすればよいですか。