我使用实体框架在学生表和部门表之间创建了一对多的关系。但不幸的是在学生表中,外键(DepartmentId)类型我给了字符串,但它应该是int。如何在不丢失数据的情况下解决此问题????????
N.B:我正在使用实体框架代码第一种方法。
答案 0 :(得分:0)
我认为你不能这样做,考虑到你的DepartamentID是Departament表的PK,所以你必须放弃旧的领域并创建一个新的领域,就像这样
AddColumn("dbo.Departament", "DepartamentID2", c => c.Int(nullable: false));
Sql(@"
UPDATE dbp.Departament
SET DepartamentID2 = DepartamentID
");
Sql(@"
ALTER TABLE dbo.Departament drop CONSTRAINT <The FK Constraint>
");
DropColumn("dbo.Departament", "DepartamentID");
RenameColumn("dbo.Departament", "DepartamentID2", "DepartamentID");
Sql(@"
ALTER TABLE dbo.Departament add PRIMARY KEY (DepartamentID)
");
Sql(@"
ALTER TABLE dbo.Departament add CONSTRAINT <The FK
constraint>
");