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


当前回答

要更新你的.dbml-diagram中的表,例如,添加列,这样做:

更新SQL Server资源管理器窗口。 将表的“新”版本拖到.dbml-diagram(下图中的report1)中。

在新版本的表中标记添加的列,按Ctrl+C复制添加的列。

单击表的“旧”版本,并按Ctrl+V将添加的列粘贴到已经存在的表版本中。

从步骤2中删除拖拽的表并保存.dbml文件。

其他回答

要更新你的.dbml-diagram中的表,例如,添加列,这样做:

更新SQL Server资源管理器窗口。 将表的“新”版本拖到.dbml-diagram(下图中的report1)中。

在新版本的表中标记添加的列,按Ctrl+C复制添加的列。

单击表的“旧”版本,并按Ctrl+V将添加的列粘贴到已经存在的表版本中。

从步骤2中删除拖拽的表并保存.dbml文件。

你也可以看看基于CodeSmith的PLINQO代码生成模板集,它允许你为Linq-to-SQL做很多漂亮的事情:

为每个类生成一个文件(而不是一个巨大的文件) 根据需要更新您的模型 更多特性

查看PLINQO网站http://www.plinqo.com,并观看介绍视频。

我知道的第二个工具是Huagati DBML/EDMX工具,它允许更新DBML (Linq-to-SQL)和EDMX(实体框架)映射文件,以及更多(如命名约定等)。

Marc

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

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

只是为了记录

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

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,你可以在单独组件>代码工具下找到它。

We use a custom written T4 template that dynamically queries the information_schema model for each table in all of our .DBML files, and then overwrites parts of the .DBML file with fresh schema info from the database. I highly recommend implementing a solution like this - it has saved me oodles of time, and unlike deleting and re-adding your tables to your model you get to keep your associations. With this solution, you'll get compile-time errors when your schema changes. You want to make sure that you're using a version control system though, because diffing is really handy. This is a great solution that works well if you're developing with a DB schema first approach. Of course, I can't share my company's code so you're on your own for writing this yourself. But if you know some Linq-to-XML and can go to school on this project, you can get to where you want to be.