0

我是 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());
}

在控制器中。我如何设置它以使其自动提取注释。

4

1 回答 1

0

外键不是“ContactTableId,ContactId”,它是Investor_IdNote(或Notes)中的单个字段。EF 认为您尝试将单个键映射到两个字段并创建这个有点难以捉摸的异常消息。但只需删除该ForeignKey属性,EF 将使用Note.

于 2013-01-24T22:59:44.100 回答