实体框架(EF)代码首次迁移仅创建一些表

时间:2016-03-03 19:53:41

标签: c# asp.net-mvc entity-framework

我正在尝试创建数据库的初始EF迁移。

但我的5个域中只有3个被创建为数据库中的表。迁移期间不会发生错误。

我尝试在运行时运行SeedData方法,但当它尝试将数据保存到不存在的表时会停止。

我正在使用EF7。我使用DNX来运行迁移。

有谁知道为什么只创建了3个表?

以下是未创建的2个表:

 // Enumclass, this is not a table
 public enum MatchTypeEnum
 { 
    Group, RoundOf32, RoundOf16, QuarterFinals, SemiFinals, BronzeFinal, Final
 }

 public partial class Match
 {
    [Key]
    public Guid MatchId { get; set; }

    public DateTime KickOffTime { get; set; }
    public int? HomeScore { get; set; }
    public int? AwayScore { get; set; }
    public Guid HomeTeamId { get; set; }
    public Guid AwayTeamId { get; set; }
    public MatchTypeEnum MatchType { get; set; }
    public Guid? GroupId { get; set; }

    public virtual Team HomeTeam { get; set; }
    public virtual Team AwayTeam { get; set; }

    [ForeignKey("GroupId")]
    public virtual Group Group { get; set; }
 }

 public enum MatchOutcomeEnum
 {
      H,A,D 
 }

 public partial class Bet
 {
    [Key]
    public Guid BetId { get; set; }

    public Guid UserId { get; set; }
    public Guid MatchId { get; set; }

    public int? HomeScore { get; set; }
    public int? AwayScore { get; set; }

    public MatchOutcomeEnum? MatchOutcome{ get; set; }

    public int? PointsCorrectScore { get; set; }
    public int? PointsBonus { get; set; }
    public int? MultiplyScoreWith { get; set; }
    public int? TotalPointsBet { get; set; }

    [ForeignKey("MatchId")]
    public virtual Match MatchBettedOn { get; set; }
}

以下是创建的3个类:

public class Team
{
    [Key]
    public Guid TeamId { get; set; }

    public string TeamName { get; set; }
    public string TeamCountry { get; set; }
    public Guid GroupId { get; set; }
    public string LogoUrl { get; set; }

    [ForeignKey("GroupId")]
    public virtual Group TeamGroup { get; set; }
}

public enum GroupEnum
{
    GroupA, GroupB, GrooupC, GroupD,GroupE,GroupF, GroupG, GroupH, GroupI
}

/// <summary>
/// The group.
/// </summary>
public partial class Group
{
    [Key]
    public Guid GroupId { get; set; }

    public GroupEnum GroupName { get; set; }
    public int? NumberTeamsProceed { get; set; }

    public virtual ICollection<Team> TeamsInGroup { get; set; }
    public virtual ICollection<Match> MatchesInGroup { get; set; }
}

public class League
{
    [Key]
    public Guid LeagueId { get; set; }

    public string LeagueName { get; set; }
    public bool Public { get; set; }
    public int LeagueNumber { get; set; }
    public string LeagueLink { get; set; }
}

DbContext

public class CupBettingContext : DbContext
{
    public CupBettingContext()
    {
        Database.EnsureCreated();
    }

    public DbSet<Group> Groups { get; set; }
    public DbSet<Match> Matches { get; set; }
    public DbSet<Bet> Bets { get; set; }
    public DbSet<League> Leagues { get; set; }
    public DbSet<Team> Teams { get; set; }

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        var connectionString = Startup.Configuration["Data:CupBettingContextConnection"];
        optionsBuilder.UseSqlServer(connectionString);

        base.OnConfiguring(optionsBuilder);
    }
}

感谢您的时间:)

更新:

我从班级匹配后删除了两行:

    public virtual Team HomeTeam { get; set; }
    public virtual Team AwayTeam { get; set; }

奇怪的是它运行了迁移:/

如果有人还在阅读这个问题,我怎样才能添加这些虚拟对象而不会出现错误?

0 个答案:

没有答案