ConsumerNM是NM /桥接表/实体。
它与事件表的1:N关系。
当我进行插入时,我会得到问题标题异常。
我需要做些什么才能让它发挥作用?
我是否必须创建2个外键,每个外键指向另一个ConsumerNM_Key?
public class ConsumerNM
{
public ConsumerNM()
{
Events = new HashSet<Event>();
}
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FK_LEADMETA { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FK_LEADCONSUMER { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
public class Event
{
[Key]
public int Id { get; set; }
public DateTime EventDate { get; set; }
public virtual ConsumerNM Consumer { get; set; }
[ForeignKey("Consumer")]
public int FK_Consumer { get; set; }
}
答案 0 :(得分:0)
ConsumerNM
或Event
不正确。您有两种选择:
第一个选项:
public class ConsumerNM
{
//This is not a PK
//[Key]
//[Column(Order = 0)]
//[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FK_LEADMETA { get; set; }
[Key]
public int FK_LEADCONSUMER { get; set; }
}
Event
保持不变。
第二个选项:
public class Event
{
[Key]
public int Id { get; set; }
public DateTime EventDate { get; set; }
public virtual ConsumerNM Consumer { get; set; }
[ForeignKey("Consumer")]
public int FK_LEADCONSUMER { get; set; }
[ForeignKey("Consumer")]
public int FK_LEADMETA { get; set; }
}
ConsumerNM
保持不变。