私はクラス内の列の名前を変更しました。それはこのように見えました。EFの列の名前をコードファーストで変更します。
public class clsClassForStackoverflow
{
[Column(TypeName = "varchar"), StringLength(150)]
public string Name { get; set; }
構造が変更されたため、名前を変更する必要がありました。だから私はその行を削除し、新しい特性を追加しました。その後、データベースの更新を準備するために新しい移行ファイルを作成し、ファイル内で古い列を削除して新しい列を追加する必要がありました。さて、私はデータベースにまだデータがあるので、名前を変更してドロップを変更しました。落ちると、それはなくなってしまうだろう。私は私のクラスに見て、propertieのdidntが変更されたデータベースの更新を起動した後
public partial class _100126_2 : DbMigration
{
public override void Up()
{
RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_Name", "ClassForStackoverflow_NewName");
}
public override void Down()
{
RenameColumn("dbo.tbClassForStackoverflow", "ClassForStackoverflow_NewName", "ClassForStackoverflow_Name");
}
}
:
新しい移行ファイルを。その名前はまだ "名前"であり、 "名前"ではありません。どのように私はEFを削除し、列を追加したと思うことなく、それを変更することができますか?あなたは次の順序でこの変更を行う必要があり
移行で有効なデータベースが更新されましたか?おそらく、update-database以外の接続文字列を使用しているかもしれません。 – pwas
@pwasはい。接続文字列は開発データベースにつながります。テーブルにはすでに正しい列があります。何とかしていないクラスだけがプロパティを更新します。 – Cataklysim
あなたはマイグレーションによってではなく、 "手動で" DBの変更を行いましたか?それとも今、問題は何ですか?もうフォローできません... – ChrFin