实体框架代码优先:理解实体关系(一对多)

时间:2017-09-06 05:36:02

标签: c# entity-framework

我对Entity Framework很新,只是遇到了一个我不明白的问题。

以下是我所做的:我创建了一个班级Event

public class Event
{
    public int Id { get; set; }
    public string Title { get; set; }
    public DateTime Start { get; set; }
    public DateTime End { get; set; }

    public int AddressId { get; set; }

    [ForeignKey("AddressId")]
    public virtual Address Address { get; set; }
} 

和一个班级Address

public class Address
{
    public int Id { get; set; }
    public string StreeName { get; set; }
    public string StreetNumber { get; set; }
    public string ZipCode { get; set; }
    public string City { get; set; }

    public virtual ICollection<Event> Events { get; set; }
}

相应的背景

public class EventContext : DbContext
{
    public EventContext(DbContextOptions<EventContext> options) : base(options)
    {
    }

    public DbSet<Event> Event { get; set; }
}

public class AddressContext : DbContext
{
    public AddressContext(DbContextOptions<AddressContext> options) : base(options)
    {
    }

    public DbSet<Address> Addresses { get; set; }
}

所以这里没有问题。但是当我用

更新我的数据库时
Update-Database -Context EventContext

Update-Database -Context AddressContext

我的数据库看起来像这样:

Database Schema

我在这里不明白的是,为什么EF为EventEventEvents)和Address创建了2个表格({{1} }和Address)?

我的目标是Addresses只有一个相关的Event

0 个答案:

没有答案