代码之家  ›  专栏  ›  技术社区  ›  Justin C

需要从Linq项目中的表中删除列

  •  0
  • Justin C  · 技术社区  · 15 年前

    我在ASP.NET和SQL Server方面有丰富的工作经验,但我对Linq不熟悉。我刚继承了一个使用Linq创建的项目。

    不幸的是,最后一个开发人员对效率一无所知,并以一种非常糟糕的方式将图像存储在数据库中。我修改了代码,使它不再使用存储图像的列。现在,我想从数据库中完全删除该列,以防止Linq查询浪费时间和资源拉入这些巨大的文件。

    我搜索了我的项目中对该列的每个引用并将其删除,然后从数据库中删除了该列(不用担心,我有大量的备份)。当我这样做时,我开始收到关于我删除的列的无效列名的错误消息。

    所以我的问题是,在使用LINQ时,如何修改表的结构?

    3 回复  |  直到 15 年前
        1
  •  1
  •   David    15 年前

    您需要确保从DBML本身中删除该列。只需在设计器中查看DBML并删除相应的列。您在编译时不会得到任何错误,因为它不会在编译期间检查DBML是否与数据库匹配。

        2
  •  1
  •   Matthew Dresser    15 年前

    只需从LinqSQL设计器中删除表,然后再次添加它。

        3
  •  0
  •   Eric Falsken    15 年前

    如果您从DBML文件中删除了该文件,但它没有收到更改,请继续,右键单击该DBML文件并选择“运行自定义工具”。请注意,如果查看文件的属性(右键单击解决方案资源管理器中的条目),您应该会看到列为“mslinqtosqlgenerator”的自定义工具。

    最坏的情况:如果您展开文件,并查看“dbmlfilename.designer.cs”文件,您应该能够找到相关的字段/列名称。继续从那个文件中删除它。(一个属性(带有属性和getter/setter)和一个同名字段(以字符开头)。

    设计器文件中属性的属性导致运行时异常。