0

我想先用 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; }
4

0 回答 0