我想先用 EF 代码对以下内容进行建模。想象一场汽车比赛,多个汽车类别在自己的比赛中竞争。
ASubEvent
只代表一个CarClass
,所以每个SubEvent
都是独一无二的,它的Id
、 theEventId
和 the CarClassId
。
现在我的问题来了:我会说 a在 aCompetitor
中是唯一的SubEvent
,所以 PrimaryKeyCompetitor
必须是{ CompetitorId, SubEventId, EventId, CarClassId }
(唯一的)
因此,OnModelCreating()
在上下文的功能中,我必须执行以下操作:
modelBuilder.Entity<Competitor>().Key(c => new { c.Id, c.SubEventId, c.SubEvent.EventId, c.SubEvent.CClassId});
这是对的还是我在这里把事情复杂化了?
供参考,到目前为止,这是我的代码模型。
class Event
{
int Id;
virtual ICollection<SubEvent> SubEvents;
}
class SubEvent
{
int Id;
int EventId;
int CClassId;
virtual Event Event;
virtual CClass CClass;
virtual ICollection<Competitor> Competitors;
virtual ICollection<Race> Races; // not shown for shortness reasons.
}
class Competitor
{
int Id;
int SubEventId;
virtual SubEvent SubEvent;
// snip
}
class CClass { int Id; }