使用实体框架

时间:2015-10-28 01:43:44

标签: c# entity-framework

是否可以在实体框架中映射一对多关系,其中关系的“多”方实际上只是一个简单的类型?

举个例子,假设这些是我的数据库表:

create table EventDetails 
(
    EventId int not null identity(1, 1),
    Name nvarchar(200) not null,

    constraint PK_EVentDetails primary key (EventId)
)

create table EventDates 
(
    EventId int not null,
    EventDate date not null,

    constraint PK_EventDates primary key (EventId, EventDate),
    constraint FK_EventDate_Event foreign key (EventId) references EventDetails(EventId)
)

我想把它表示为一个类,如下所示:

public class EventDetails {
    public int Id { get; set; }
    public string Name { get; set; }

    public IList<DateTime> Dates { get; set; }
}

我不确定如何使用实体地图执行此操作:

public class EventDetailsMap : EntityTypeConfiguration<EventDetails>
{
    public EventDetailsMap()
    {
        ToTable("EventDetails").HasKey(evnt => evnt.Id);

        // --- WHAT GOES HERE?? ---
        HasMany(evnt => evnt.Dates)
            .WithRequired()
            .HasForeignKey(/* ??? */);
    }
}

我的直觉是我无法做到这一点 - 相反,我必须创建一个EventDate课程 - 但很高兴知道这一点!

(供参考:我使用的是EF6)

0 个答案:

没有答案