首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EF迁移:参数@objname不明确或声称的@objtype (列)错误

EF迁移:参数@objname不明确或声称的@objtype (列)错误
EN

Stack Overflow用户
提问于 2017-03-17 15:42:58
回答 1查看 8K关注 0票数 1

我试图用迁移更新我的数据库。当我用手删除所有的桌子,然后用手重新创建时,我可能搞砸了。

我首先使用代码,添加迁移命令给了我以下内容:

代码语言:javascript
复制
 public override void Up()
        {
        DropForeignKey("[dbo.Products]", "[Bundle_Id]", "[dbo.Bundles]");
        DropForeignKey("[dbo.Defects]", "[Product_Id]", "[dbo.Products]");
        DropForeignKey("[dbo.Defects]", "[User_Id]", "[dbo.Users]");
        RenameColumn(table: "[dbo.Products]", name: "[Bundle_Id]", newName: "[Bundles_BundlesId]");
        RenameColumn(table: "[dbo.Defects]", name: "[Product_Id]", newName: "[Products_ProductsId]");
        RenameColumn(table: "[dbo.Defects]", name: "[User_Id]", newName: "[Users_UsersId]");
        RenameIndex(table: "[dbo.Products]", name: "[IX_Bundle_Id]", newName: "[IX_Bundles_BundlesId]");
        RenameIndex(table: "[dbo.Defects]", name: "[IX_Product_Id]", newName: "[IX_Products_ProductsId]");
        RenameIndex(table: "[dbo.Defects]", name: "[IX_User_Id]", newName: "[IX_Users_UsersId]");
        DropPrimaryKey("[dbo.Bundles]");
        DropPrimaryKey("[dbo.Defects]");
        DropPrimaryKey("[dbo.Products]");
        DropPrimaryKey("[dbo.Users]");
        AddColumn("[dbo.Bundles]", "[BundlesId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Defects]", "[DefectsId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Defects]", "[ProductsId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Defects]", "[UsersId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Products]", "[ProductsId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Products]", "[BundlesId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Users]", "[UsersId]", c => c.Long(nullable: false, identity: true));
        AddPrimaryKey("[dbo.Bundles]", "[BundlesId]");
        AddPrimaryKey("[dbo.Defects]", "[DefectsId]");
        AddPrimaryKey("[dbo.Products]", "[ProductsId]");
        AddPrimaryKey("[dbo.Users]", "[UsersId]");
        AddForeignKey("[dbo.Products]", "[Bundles_BundlesId]", "[dbo.Bundles]", "[BundlesId]");
        AddForeignKey("[dbo.Defects]", "[Products_ProductsId]", "[dbo.Products]", "[ProductsId]");
        AddForeignKey("[dbo.Defects]", "[Users_UsersId]", "[dbo.Users]", "[UsersId]");
        DropColumn("[dbo.Bundles]", "[Id]");
        DropColumn("[dbo.Defects]", "[Id]");
        DropColumn("[dbo.Defects]", "[ProductId]");
        DropColumn("[dbo.Defects]", "[UserId]");
        DropColumn("[dbo.Products]", "[Id]");
        DropColumn("[dbo.Products]", "[BundleId]");
        DropColumn("[dbo.Users]", "[Id]");
        }

    public override void Down()
        {
        AddColumn("[dbo.Users]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Products]", "[BundleId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Products]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Defects]", "[UserId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Defects]", "[ProductId]", c => c.Int(nullable: false));
        AddColumn("[dbo.Defects]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo.Bundles]", "[Id]", c => c.Long(nullable: false, identity: true));
        DropForeignKey("[dbo.Defects]", "[Users_UsersId]", "[dbo.Users]");
        DropForeignKey("[dbo.Defects]", "[Products_ProductsId]", "[dbo.Products]");
        DropForeignKey("[dbo.Products]", "[Bundles_BundlesId]", "[dbo.Bundles]");
        DropPrimaryKey("[dbo.Users]");
        DropPrimaryKey("[dbo.Products]");
        DropPrimaryKey("[dbo.Defects]");
        DropPrimaryKey("[dbo.Bundles]");
        DropColumn("[dbo.Users]", "[UsersId]");
        DropColumn("[dbo.Products]", "[BundlesId]");
        DropColumn("[dbo.Products]", "[ProductsId]");
        DropColumn("[dbo.Defects]", "[UsersId]");
        DropColumn("[dbo.Defects]", "[ProductsId]");
        DropColumn("[dbo.Defects]", "[DefectsId]");
        DropColumn("[dbo.Bundles]", "[BundlesId]");
        AddPrimaryKey("[dbo.Users]", "[Id]");
        AddPrimaryKey("[dbo.Products]", "[Id]");
        AddPrimaryKey("[dbo.Defects]", "[Id]");
        AddPrimaryKey("[dbo.Bundles]", "[Id]");
        RenameIndex(table: "[dbo.Defects]", name: "[IX_Users_UsersId]", newName: "[IX_User_Id]");
        RenameIndex(table: "[dbo.Defects]", name: "[IX_Products_ProductsId]", newName: "[IX_Product_Id]");
        RenameIndex(table: "[dbo.Products]", name: "[IX_Bundles_BundlesId]", newName: "[IX_Bundle_Id]");
        RenameColumn(table: "[dbo.Defects]", name: "[Users]_UsersId]", newName: "[User_Id]");
        RenameColumn(table: "[dbo.Defects]", name: "[Products_ProductsId]", newName: "[Product_Id]");
        RenameColumn(table: "[dbo.Products]", name: "[Bundles_BundlesId]", newName: "[Bundle_Id]");
        AddForeignKey("[dbo.Defects]", "[User_Id]", "[dbo.Users]", "[Id]");
        AddForeignKey("[dbo.Defects]", "[Product_Id]", "[dbo.Products]", "[Id]");
        AddForeignKey("[dbo.Products]", "[Bundle_Id]", "[dbo.Bundles]", "[Id]");
        }

我用括号('‘和'')包围了每个名字,这显然帮助了我的一些人。我发帖子是因为,你猜到了,不是我写的。

我总是得到:

参数@objname不明确,或者声称的@objtype (列)是错误的。

有谁能猜到什么是禁止我更新数据库的呢?我应该从另一个项目中重新开始吗?

谢谢!

编辑:在以错误的方式对我的括号进行评论后,我更新为:

代码语言:javascript
复制
public partial class Migr : DbMigration
{
    public override void Up()
    {
        DropForeignKey("[dbo].[Products]", "[Bundle_Id]", "[dbo].[Bundles]");
        DropForeignKey("[dbo].[Defects]", "[Product_Id]", "[dbo].[Products]");
        DropForeignKey("[dbo].[Defects]", "[User_Id]", "[dbo].[Users]");
        RenameColumn(table: "[dbo].[Products]", name: "[Bundle_Id]", newName: "[Bundles_BundlesId]");
        RenameColumn(table: "[dbo].[Defects]", name: "[Product_Id]", newName: "[Products_ProductsId]");
        RenameColumn(table: "[dbo].[Defects]", name: "[User_Id]", newName: "[Users_UsersId]");
        RenameIndex(table: "[dbo].[Products]", name: "[IX_Bundle_Id]", newName: "[IX_Bundles_BundlesId]");
        RenameIndex(table: "[dbo].[Defects]", name: "[IX_Product_Id]", newName: "[IX_Products_ProductsId]");
        RenameIndex(table: "[dbo].[Defects]", name: "[IX_User_Id]", newName: "[IX_Users_UsersId]");
        DropPrimaryKey("[dbo].[Bundles]");
        DropPrimaryKey("[dbo].[Defects]");
        DropPrimaryKey("[dbo].[Products]");
        DropPrimaryKey("[dbo].[Users]");
        AddColumn("[dbo].[Bundles]", "[BundlesId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Defects]", "[DefectsId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Defects]", "[ProductsId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Defects]", "[UsersId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Products]", "[ProductsId]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Products]", "[BundlesId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Users]", "[UsersId]", c => c.Long(nullable: false, identity: true));
        AddPrimaryKey("[dbo].[Bundles]", "[BundlesId]");
        AddPrimaryKey("[dbo].[Defects]", "[DefectsId]");
        AddPrimaryKey("[dbo].[Products]", "[ProductsId]");
        AddPrimaryKey("[dbo].[Users]", "[UsersId]");
        AddForeignKey("[dbo].[Products]", "[Bundles_BundlesId]", "[dbo].[Bundles]", "[BundlesId]");
        AddForeignKey("[dbo].[Defects]", "[Products_ProductsId]", "[dbo].[Products]", "[ProductsId]");
        AddForeignKey("[dbo].[Defects]", "[Users_UsersId]", "[dbo].[Users]", "[UsersId]");
        DropColumn("[dbo].[Bundles]", "[Id]");
        DropColumn("[dbo].[Defects]", "[Id]");
        DropColumn("[dbo].[Defects]", "[ProductId]");
        DropColumn("[dbo].[Defects]", "[UserId]");
        DropColumn("[dbo].[Products]", "[Id]");
        DropColumn("[dbo].[Products]", "[BundleId]");
        DropColumn("[dbo].[Users]", "[Id]");
    }

    public override void Down()
    {
        AddColumn("[dbo].[Users]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Products]", "[BundleId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Products]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Defects]", "[UserId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Defects]", "[ProductId]", c => c.Int(nullable: false));
        AddColumn("[dbo].[Defects]", "[Id]", c => c.Long(nullable: false, identity: true));
        AddColumn("[dbo].[Bundles]", "[Id]", c => c.Long(nullable: false, identity: true));
        DropForeignKey("[dbo].[Defects]", "[Users_UsersId]", "[dbo].[Users]");
        DropForeignKey("[dbo].[Defects]", "[Products_ProductsId]", "[dbo].[Products]");
        DropForeignKey("[dbo].[Products]", "[Bundles_BundlesId]", "[dbo].[Bundles]");
        DropPrimaryKey("[dbo].[Users]");
        DropPrimaryKey("[dbo].[Products]");
        DropPrimaryKey("[dbo].[Defects]");
        DropPrimaryKey("[dbo].[Bundles]");
        DropColumn("[dbo].[Users]", "[UsersId]");
        DropColumn("[dbo].[Products]", "[BundlesId]");
        DropColumn("[dbo].[Products]", "[ProductsId]");
        DropColumn("[dbo].[Defects]", "[UsersId]");
        DropColumn("[dbo].[Defects]", "[ProductsId]");
        DropColumn("[dbo].[Defects]", "[DefectsId]");
        DropColumn("[dbo].[Bundles]", "[BundlesId]");
        AddPrimaryKey("[dbo].[Users]", "[Id]");
        AddPrimaryKey("[dbo].[Products]", "[Id]");
        AddPrimaryKey("[dbo].[Defects]", "[Id]");
        AddPrimaryKey("[dbo].[Bundles]", "[Id]");
        RenameIndex(table: "[dbo].[Defects]", name: "[IX_Users_UsersId]", newName: "[IX_User_Id]");
        RenameIndex(table: "[dbo].[Defects]", name: "[IX_Products_ProductsId]", newName: "[IX_Product_Id]");
        RenameIndex(table: "[dbo].[Products]", name: "[IX_Bundles_BundlesId]", newName: "[IX_Bundle_Id]");
        RenameColumn(table: "[dbo].[Defects]", name: "[Users]_UsersId]", newName: "[User_Id]");
        RenameColumn(table: "[dbo].[Defects]", name: "[Products_ProductsId]", newName: "[Product_Id]");
        RenameColumn(table: "[dbo].[Products]", name: "[Bundles_BundlesId]", newName: "[Bundle_Id]");
        AddForeignKey("[dbo].[Defects]", "[User_Id]", "[dbo].[Users]", "[Id]");
        AddForeignKey("[dbo].[Defects]", "[Product_Id]", "[dbo].[Products]", "[Id]");
        AddForeignKey("[dbo].[Products]", "[Bundle_Id]", "[dbo].[Bundles]", "[Id]");
    }
}

不幸的是这并不能解决我的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-22 18:02:32

我的问题是,由于某种原因,当我运行Create-Migration时,它生成一个引用表中不存在的字段的命令。一旦我修好了,它就跑得很好了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42861733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档