C# 使用代码优先的ASP MVC删除表列
我有两个班C# 使用代码优先的ASP MVC删除表列,c#,sql,sql-server,asp.net-mvc,entity-framework-migrations,C#,Sql,Sql Server,Asp.net Mvc,Entity Framework Migrations,我有两个班A和BB有一个外键指向a class A { byte Id{get; set;} string Name{get;set;} } 及 我的问题是: 我创建了一个类a,其属性id类型为int 我运行更新数据库 我将id的数据类型修改为byte 我再次运行更新数据库 我发现在使用A的id作为外键的表B中有两列,即aId和A\u id 我的问题是:如何使用代码优先的方法删除列a_Id?或者无论如何,这是可行的 我尝试运行查询:ALTER TABLE DROP COL
A
和B
<代码>B有一个外键指向a
class A {
byte Id{get; set;}
string Name{get;set;}
}
及
我的问题是:
a
,其属性id
类型为int
更新数据库
id
的数据类型修改为byte
更新数据库
A
的id
作为外键的表B
中有两列,即aId
和A\u id
李>
我的问题是:如何使用代码优先的方法删除列a_Id
?或者无论如何,这是可行的
我尝试运行查询:ALTER TABLE DROP COLUMN a\u Id
-失败,因为一个或多个对象访问此列。
我还尝试使用VS服务器资源管理器直接删除该列,使用表定义删除该列。但它也不起作用
谢谢请按照以下步骤操作
1:从模型中删除属性。
2:在包管理控制台中运行“启用迁移”。
3:下一次运行“添加迁移”MigrationsName。如果在任何情况下显示“项目未能生成,请重新生成项目”。
4:现在运行“更新数据库”也许您忘了在模型中更改B的FK类型
[Required]
public byte ClassAId{ get; set; }
public virtual ClassA ClassA{ get; set; }
还可以查看迁移的Up和Down方法
classA的Id上的属性[Key]也可能有用。您可以注释B类并更新数据库!(升降台)
再次用B类更新数据库!:)对我来说,这项工作 我在学习ASP.net时遇到了同样的问题 删除不需要的道具的解决方案如下: 1-您必须将其作为索引删除 因此,添加新的迁移并在UP方法中编写此指令
DropIndex("dbo.TableName", new[] { "ColumnName" });
2-更新数据库
注意:在这个阶段,如果打开表的定义(SQL代码),可以确保索引已经消失
3-新迁移,但现在使用Up方法写入
DropColumn("TableName", "ColumnName");
4-更新数据库
它消失了你应该提供A、B类源代码吗?“文本”问题将返回文本答案从模型中删除属性是什么意思?从
B
中删除A
相关属性,例如,id
?尝试从数据库表中删除的属性
DropColumn("TableName", "ColumnName");