我在ASP.NET和Sql Server工作方面有丰富的经验,但我是Linq的新手。我刚刚继承了一个使用Linq创建的项目。
不幸的是,最后一位开发人员对效率一无所知,并且以极其糟糕的方式将图像存储在数据库中。我修改了代码,使其不再使用存储图像的列。现在我想从数据库中完全删除该列,以防止Linq查询浪费时间和资源来吸引这些巨大的文件。
我在我的项目中搜索了对该列的每个引用并将其删除,然后从数据库中删除了该列(不用担心,我对所有内容都有大量备份)。当我这样做时,我开始收到有关我删除的列的无效列名的错误消息。
所以我的问题是,在使用Linq时你如何修改表的结构?
答案 0 :(得分:1)
您需要确保从DBML本身中删除该列。只需在设计器中查看DBML并删除相应的列即可。您不会在编译时收到任何错误,因为在编译期间它没有检查DBML是否与数据库实际匹配。
答案 1 :(得分:1)
只需从Linq-Sql设计器中删除该表,然后重新添加即可。
答案 2 :(得分:0)
如果您从dbml文件中删除了该文件,但它没有获取更改,请继续并右键单击dbml文件并选择“运行自定义工具”。请注意,如果查看文件的属性(右键单击解决方案资源管理器中的条目),您应该会看到自定义工具列为“MSLinqToSQLGenerator”。
最坏情况:如果展开文件,并查看“dbmlfilename.designer.cs”文件,您应该能够找到有问题的字段/列名称。继续并从该文件中删除它。 (一个属性(带属性和getter / setter)和一个具有相同名称的字段(以_字符开头)。
设计器文件中属性的属性导致运行时异常。