Код Первая конфигурация объекта Проблема ToTable - PullRequest
0 голосов
/ 04 августа 2010

Если я укажу ToTable в переопределении OnModelCreating следующим образом:

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
  modelBuilder.Entity<Team>()
    .MapSingleType()
    .ToTable("my_teams");    
}

он создает dbo.my_teams, однако, если я разделю его на классы, вот так:

public class TeamMap : EntityConfiguration<Team>
{
  public TeamMap()
  {
     MapSingleType()
     .ToTable("my_teams");
  }
}

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
  modelBuilder.Configurations.Add(new TeamMap());
}

создает dbo.Teams. Есть идеи почему?

1 Ответ

1 голос
/ 04 августа 2010

Это похоже на ошибку в перегрузке MapSingleType (), которая не принимает параметров ... спасибо, что нашли ее!В качестве обходного пути, если вы укажете все сопоставления столбцов, используя другую перегрузку MapSingleType (), вы получите ожидаемый результат.Например:

public class TeamContext : DbContext
{
    public DbSet<Team> Teams { get; set; }

    public class TeamMap : EntityConfiguration<Team>
    {
        public TeamMap()
        {
            MapSingleType(t => new { t.Id, t.Name })
            .ToTable("my_teams");
        }
    }

    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Configurations.Add(new TeamMap());
    } 
}

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

Джефф

...