我如何更新一个Linq到SQL .dbml文件?


当前回答

使用Visual Studio 2019在图形设计器中打开DBML文件更新DBML文件。

不工作时:https://developercommunity.visualstudio.com/t/dbml-files-not-opening-in-graphic-designer-in-vs-2/1659675

只是为了记录

其他回答

我建议使用VS2008内置的可视化设计器,因为更新dbml也会更新为您生成的代码。在可视化设计器之外修改dbml将导致底层代码不同步。

在存储过程更新的情况下,应该从.dbml文件中删除它,然后重新插入它。但是如果存储过程有两条路径(例如:if something;显示一些列;否则显示一些其他列),确保两个路径有相同的列别名!!否则只有第一个路径列存在。

下面是对我有效的完整的分步方法,用于更新LINQ to SQL dbml和相关文件,以包括我添加到一个数据库表中的新列。

您需要对您的设计表面进行上述其他建议的更改;但是,您需要执行一些额外的步骤。以下是完整的步骤:

Drag your updated table from Server Explorer onto the design surface Copy the new column from this "new" table to the "old" table (see M463 answer for details on this step) Delete the "new" table that you just dragged over Click and highlight the stored procedure, then delete it Drag the new stored procedure and drop into place. Delete the .designer.vb file in the code-behind of the .dbml (if you do not delete this, your code-behind containing the schema will not update even if you rebuild and the new table field will not be included) Clean and Rebuild the solution (this will rebuild the .designer.vb file to include all the new changes!).

有三种方法可以使模型保持同步。

Delete the modified tables from the designer, and drag them back onto the designer surface from the Database Explorer. I have found that, for this to work reliably, you have to: a. Refresh the database schema in the Database Explorer (right-click, refresh) b. Save the designer after deleting the tables c. Save again after dragging the tables back. Note though that if you have modified any properties (for instance, turning off the child property of an association), this will obviously lose those modifications — you'll have to make them again. Use SQLMetal to regenerate the schema from your database. I have seen a number of blog posts that show how to script this. Make changes directly in the Properties pane of the DBML. This works for simple changes, like allowing nulls on a field.

DBML设计器在Visual Studio 2015、2017或2019中默认不安装。你必须关闭VS,启动VS安装程序并修改你的安装。LINQ to SQL工具是必须安装的特性。对于VS 2017/2019,你可以在单独组件>代码工具下找到它。

使用Visual Studio 2019在图形设计器中打开DBML文件更新DBML文件。

不工作时:https://developercommunity.visualstudio.com/t/dbml-files-not-opening-in-graphic-designer-in-vs-2/1659675

只是为了记录