C# 使用实体框架从关系映射单个属性

C# 使用实体框架从关系映射单个属性,c#,entity-framework,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 ( Even

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

例如,假设以下是我的数据库表:

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; }
}
公共类事件详细信息{
公共int Id{get;set;}
公共字符串名称{get;set;}
公共IList日期{get;set;}
}
只是不确定如何使用实体映射来实现这一点:

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

        // --- WHAT GOES HERE?? ---
        HasMany(evnt => evnt.Dates)
            .WithRequired()
            .HasForeignKey(/* ??? */);
    }
}
公共类EventDetailsMap:EntityTypeConfiguration
{
公共事件详细信息map()
{
ToTable(“EventDetails”).HasKey(evnt=>evnt.Id);
//---这里有什么---
有很多(evnt=>evnt.Dates)
.WithRequired()
.HasForeignKey(/*?*/);
}
}
我的直觉是,我不能这样做——相反,我必须创建一个
EventDate
类——但如果能确定这一点,那就太好了


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

非常确定您需要一个完整的实体,否则EF不知道如何映射到数据库表。我同意@DavidG,因为您没有告诉EF
日期
数据库集
(或导航属性)。相反,您只是告诉EF您的模型有一个
日期时间的列表(这是不正确的-它是另一个表/实体)。我会说,创建自定义配置可能是可能的(因为EF是开源的),但我认为这是一项很好的工作。