2015-10-07 2 views
1

Я добавил некоторые свойства Into ApplicationUser, теперь я хочу удалить эти свойства, но у меня есть это:«XXX.dbo.aspnetusers» таблица не существует, миграции VS-Mysql

MySql.Data.MySqlClient.MySqlException (0x80004005): Таблица «intranetproto.dbo.aspnetusers» не существует.

этого являются те свойства, которые я хочу удалить:

public class ApplicationUser : IdentityUser 
{ 
    public string Email { get; set; } 
    [Required] 
    public string FirstName { get; set; } 
    [Required] 
    public string LastName { get; set; } 
    public int SignatureId { get; set; } 

    public virtual Signature Signature { get; set; } 
    public virtual string FullName 
    { 

     get 
     { 
      return FirstName + " " + LastName; 
     } 

    } 

} 

это моя модель идентичности (без некоторых свойств)

public class ApplicationUser : IdentityUser 
{ 
    public string Email { get; set; } 


} 

[DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] 
public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 
{ 
    public ApplicationDbContext() 
     : base("DefaultConnection") 
    { 
    } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Model> Models { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Quote> Quotes { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Customer> Customers { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Participant> Participants { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.File> Files { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Family> Families { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Procedure> Procedures { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Vendor> Vendors { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Log> Logs { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Signature> Signatures { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Receipt> Receipt { get; set; } 

    public System.Data.Entity.DbSet<LocalIdentity.Models.Department> Departments { get; set; } 


} 

это моя миграция:

namespace LocalIdentity.Migrations 
{ 
    using System; 
    using System.Data.Entity.Migrations; 

    public partial class SignatureIdInUSerDeleted : DbMigration 
    { 
     public override void Up() 
     { 
      DropForeignKey("dbo.aspnetusers", "SignatureId", "dbo.Signatures"); 
      DropIndex("dbo.aspnetusers", new[] { "SignatureId" }); 
      DropColumn("dbo.aspnetusers", "FirstName"); 
      DropColumn("dbo.aspnetusers", "LastName"); 
      DropColumn("dbo.aspnetusers", "SignatureId"); 
     } 

     public override void Down() 
     { 
      AddColumn("dbo.aspnetusers", "SignatureId", c => c.Int()); 
      AddColumn("dbo.aspnetusers", "LastName", c => c.String(unicode: false)); 
      AddColumn("dbo.aspnetusers", "FirstName", c => c.String(unicode: false)); 
      CreateIndex("dbo.aspnetusers", "SignatureId"); 
      AddForeignKey("dbo.aspnetusers", "SignatureId", "dbo.Signatures", "Id", cascadeDelete: true); 
     } 
    } 
} 

Я надеваю У меня есть идея, почему я получаю эту ошибку, если я могу добавить, я должен удалить ее.

+0

Вы получаете это во время этапа обновления базы данных? Попробуйте выполнить его скриптинг, чтобы вы могли видеть генерируемый SQL. Обычно я подозреваю, что проблема связана с цепочкой. –

+0

Спасибо, но у меня нет проблем с соединительной строкой, потому что я могу добавлять таблицы, добавлять столбцы, но проблема в том, что я хочу «изменить» таблицу, и эта проблема связана с MySql, в Ms-Sql отлично работает , –

ответ

3

я наконец понял, проблема с миграцией является префиксом «ДБО», я просто удалить все их, и это работает, я нашел ответ here, я изменить свой класс конфигурации это:

public Configuration() 
    { 
     AutomaticMigrationsEnabled = true; 
     SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator()); 
     CodeGenerator = new MySql.Data.Entity.MySqlMigrationCodeGenerator(); //this line was missing, so now the migrations does not contains the prefix "dbo" 

    } 

теперь миграция генерируется автоматически без префикса «dbo»

public override void Up() 
    { 
     DropForeignKey("UserDatas", "UserId", "AspNetUsers"); 
     DropIndex("UserDatas", new[] { "UserId" }); 
     AlterColumn("UserDatas", "UserId", c => c.String(nullable: false, maxLength: 128, unicode: false, storeType: "nvarchar")); 
     AlterColumn("UserDatas", "FirstName", c => c.String(nullable: false, unicode: false)); 
     AlterColumn("UserDatas", "LastName", c => c.String(nullable: false, unicode: false)); 
     AlterColumn("UserDatas", "Title", c => c.String(nullable: false, unicode: false)); 
     CreateIndex("UserDatas", "UserId"); 
     AddForeignKey("UserDatas", "UserId", "AspNetUsers", "Id", cascadeDelete: true); 
    }