2014-01-31 45 views
0

我在一個應用程序(WinForm的+ ServiceStack Web服務),並在APPHOST工作時,我嘗試了一些數據存儲在MySQL數據庫得到這個錯誤:enter image description hereMYSQL +的EntityFramework「Backmodel已經改變了」

我的天堂沒有改變模型。我該如何解決這個問題?

這裏是MyDbContext

public class MySqlContext : System.Data.Entity.DbContext 
    { 
     public System.Data.Entity.DbSet<LoginModel> LoginModels { get; set; } 
     public System.Data.Entity.DbSet<Role> Roles { get; set; } 
     public System.Data.Entity.DbSet<Permission> Permissions { get; set; } 

     public MySqlContext() 
      : base("ConnectionStringName") 
     { 
      Database.SetInitializer <MySqlContext>(null); 

     } 


     protected override void OnModelCreating(DbModelBuilder modelBuilder) 
     { 


      modelBuilder.Entity<LoginModel>().HasMany(lm => lm.roles).WithMany(r => r.Users) 
        .Map(
         m => 
         { 
          m.MapLeftKey("lm_Id"); 
          m.MapRightKey("role_Id"); 
          m.ToTable("login_roles"); 
         } 
       ); 

      modelBuilder.Entity<Role>().HasMany(r => r.Permissions).WithMany(p => p.Roles) 
       .Map(
        m => 
        { 
         m.MapLeftKey("role_id"); 
         m.MapRightKey("per_id"); 
         m.ToTable("roles_permissions"); 
        } 
       ); 



     } 

    } 

回答

0

嘗試

Database.SetInitializer<YourDbContext>(null); 

在你的DbContext

對於實例

public class MyDbContext : DbContext 
{ 
    public MyDbContext() 
    { 
     Database.SetInitializer<MyDbContext >(null); 
    } 

    public DbSet<Users> Users { get; set; }  
} 
+0

很抱歉,但我不明白的Add(新用戶映射( )); ,請檢查我的更新我已經添加了我的DbContext.cs @pravprab –

+0

@ user1629278你不需要添加(新的UserMap()); 。在這個例子中,在DB中使用表映射實體。我刪除它以避免混淆 – pravprab

+0

Database.SetInitializer (null);你的DbContext已經存在了嗎?如果它在那裏,我的回答是無關緊要的:-( – pravprab