2015-11-30 4 views
5

Я следующий DbContext и я хочу, чтобы перенести его с помощью Entity FramworkEF Migration для универсальной платформы Windows

public class TestDbContext: DbContext 
{ 
    public DbSet<State> States { get; set; } 
    public DbSet<StateType> StateTypes { get; set; } 
    public DbSet<Measure> Measures { get; set; } 
    public DbSet<Priority> Priorities { get; set; } 
    public DbSet<Task> Tasks { get; set; } 
    public DbSet<TaskType> TaskTypes { get; set; } 
    public DbSet<Document> Documents { get; set; } 


    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     string databaseFilePath = "test.db"; 
     try 
     { 
      databaseFilePath = Path.Combine(ApplicationData.Current.LocalFolder.Path, databaseFilePath); 
     } 
     catch (InvalidOperationException) { } 
     optionsBuilder.UseSqlite($"Data source={databaseFilePath}"); 
    } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 

    } 

Я побежал заявление

enable-migrations -ContextTypeName TestData.TestDbContext 

в Package Manager Console для создания конфигурации. Но поколение имеет ошибки компиляции, потому что следующие пространства имен/классы не могут быть найдены:

using System.Data.Entity; 
using System.Data.Entity.Migrations; 
DbMigrationsConfiguration 

.

namespace TestData.Migrations 
{ 
    using System; 
    using System.Data.Entity; 
    using System.Data.Entity.Migrations; 
    using System.Linq; 

    internal sealed class Configuration : DbMigrationsConfiguration<TestDatas.TestDbContext> 
    { 
     public Configuration() 
     { 
      AutomaticMigrationsEnabled = false; 
     } 

     protected override void Seed(TestDatas.TestDbContext context) 
     { 
      // This method will be called after migrating to the latest version. 

      // You can use the DbSet<T>.AddOrUpdate() helper extension method 
      // to avoid creating duplicate seed data. E.g. 
      // 
      // context.People.AddOrUpdate(
      //  p => p.FullName, 
      //  new Person { FullName = "Andrew Peters" }, 
      //  new Person { FullName = "Brice Lambson" }, 
      //  new Person { FullName = "Rowan Miller" } 
      // ); 
      // 
     } 
    } 
} 

Любые решения о том, как конфигурация может быть скомпилирована, чтобы добавить миграцию?

ответ

2

Возможно, это documentation on EF7.

я тестировал, DbContext должны использовать эту ссылку:

using Microsoft.Data.Entity; 

и using System.Data.Entity.Migrations; также следует изменить на

using Microsoft.Data.Entity.Migrations; 
+0

Спасибо за ваш ответ. Я попробовал это. Но DbMigrationsConfiguration по-прежнему не найден .. – simsonimus

+0

Да ~, DbMigrationsConfiguration не существует в EF7. Но есть и другой способ приблизиться к этому. [Это] (https://github.com/aspnet/EntityFramework/issues/629) может быть полезно. – panda

+0

Большое спасибо. – simsonimus

Смежные вопросы