我正在为我的管弦乐队规划工具开发实体关系数据模型。最终结果应该是ASP.NET / MVC4应用程序。
这是我的E / R图的一部分:
在上图中,我尝试想象Event
和Composition
之间存在多对多关系。在我的模型中,我还希望能够存储来自任意Composition
的{{1}}的录音(可以有来自不同事件/协奏曲的相同乐曲的许多不同录音版本)。
这是我到目前为止所做的(使用我的代码优先数据模型的相关代码):
Event
_
public class Composition
{
public Composition()
{
Instruments = new Collection<Instrument>();
Events = new Collection<Event>();
}
[Key]
public int Id { get; set; }
public bool Active { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public TimeSpan Durata { get; set; }
public virtual Composer Composer { get; set; }
public virtual Composer Genre { get; set; }
public virtual ICollection<Instrument> Instruments { get; set; }
public virtual ICollection<Event> Events { get; set; }
}
我的问题:我的代码在哪里添加关系属性“录制”?
编辑:我是否必须创建链接表,还是有更好的选择?
答案 0 :(得分:1)
您要实现的目标与属性的多对多关系称为。为了在关系数据库中建模N到M关系,您将始终需要一个中间表。要使用EF添加属性,您需要另一个实体来建模关系并正确映射它。在这个问题中,它解释了如何做到这一点:
Entity Framework Code 1st - Mapping many-to-many with extra info