📜  c# core linq savechanges invalid column name error when added but not while updates - C#(1)

📅  最后修改于: 2023-12-03 14:39:42.622000             🧑  作者: Mango

C# Core LINQ SaveChanges Invalid Column Name Error When Added but not While Updates

介绍:

在使用C# Core LINQ进行更新数据时,可能会遇到“Invalid Column Name”错误。虽然添加数据时不会出现这种情况,但是更新数据时会出现这种错误。在此文章中,我们将探讨这种情况为何导致错误,并提供相应的解决方法。

错误原因

出现此错误的原因是由于在 update 操作时,EF Core不会将在表格结构中不存在的列添加至SQL语句中。因此,当SQL语句中存在这样的列时,就会出现无效的列名错误。

解决方案

为了解决这个问题,我们需要通过以下步骤来添加缺少的列:

  1. 打开Package Manager Console并执行以下命令:

    Add-Migration AddMissingColumns
    

    这个命令将生成一个名为AddMissingColumns的迁移。

  2. 打开生成的迁移文件,并添加缺少的列。例如,如果缺少了一个名为“NewColumn”的列,我们可以在Up方法中添加以下代码:

    migrationBuilder.AddColumn<string>(
        name: "NewColumn",
        table: "TableName",
        nullable: false,
        defaultValue: "");
    

    在下一次运行Update-Database命令时,将向表格中添加新列。

  3. 运行Update-Database命令以应用新迁移:

    Update-Database
    

    此命令将应用所有尚未应用的迁移。

结论

通过添加缺少的列,我们可以解决“Invalid Column Name”错误,并成功更新数据。下次遇到此问题时,按照上述步骤操作即可解决。