C# 实体框架7中的更改列?

C# 实体框架7中的更改列?,c#,entity-framework,C#,Entity Framework,我在一张长6英寸的桌子上放了一个女服务员。我首先用代码和数据符号[StringLength(6)]创建了它 我想把长度改为20。我试图在代码中对其进行更改并进行新的迁移,但没有任何效果。我没有找到一种先用代码进行迁移的方法。对我来说唯一有效的方法就是直接查询数据库 ALTER TABLE [Tablename] ALTER COLUMN [Columname] nvarchar(20). 我担心这会因为DatabaseContextModelSnapshot文件而引发异常,但它工作正常。如果

我在一张长6英寸的桌子上放了一个女服务员。我首先用代码和数据符号
[StringLength(6)]
创建了它


我想把长度改为20。我试图在代码中对其进行更改并进行新的迁移,但没有任何效果。

我没有找到一种先用代码进行迁移的方法。对我来说唯一有效的方法就是直接查询数据库

ALTER TABLE [Tablename] ALTER COLUMN [Columname] nvarchar(20). 

我担心这会因为DatabaseContextModelSnapshot文件而引发异常,但它工作正常。如果您采用这种方法,我建议您也对代码进行更改,并对其进行新的迁移。这是不必要的,但这样您的迁移和代码与数据库保持一致。

我没有找到一种先使用代码的方法。对我来说唯一有效的方法就是直接查询数据库

ALTER TABLE [Tablename] ALTER COLUMN [Columname] nvarchar(20). 

我担心这会因为DatabaseContextModelSnapshot文件而引发异常,但它工作正常。如果您采用这种方法,我建议您也对代码进行更改,并对其进行新的迁移。这不是必需的,但这样您的迁移和代码与数据库保持一致。

您可以做的一件事是,使用Fluent Api在onModelCreating()方法中更改列名。 此方法可以在从DbContext类继承的类中重写


您可以做一件事,使用Fluent Api在onModelCreating()方法中更改列名。 此方法可以在从DbContext类继承的类中重写


什么意思是“什么都没做?”迁移是创建的吗?是空的吗?您是否遇到错误?迁移已创建,但其中仅删除和重新创建了foreignkey。因此,它并没有改变DBI中的任何内容,我记得这是一个bug。您可以将所需的代码添加到Up()。“什么都没做”是什么意思?迁移是创建的吗?是空的吗?您是否遇到错误?迁移已创建,但其中仅删除和重新创建了foreignkey。因此,它并没有改变DBI中的任何内容,我记得这是一个bug。您可以将所需的代码添加到Up()。