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


当前回答

更新表和更新DBML之间有细微差别…如果对现有表进行了更改,外键关系并不总是立即引入。解决方法是构建项目,然后重新添加表。我向微软报告了这个问题,在VS2010中得到了修复。

DBML显示不显示新的外键约束


请注意,主答案中给出的说明并不清楚。更新表

打开dbml设计面 选择所有带“右”的表->单击->选择全部或CTRLa CTRLx(削减) CTRLv(粘贴) 保存并重新构建解决方案。

其他回答

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.

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

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

只是为了记录

更新表和更新DBML之间有细微差别…如果对现有表进行了更改,外键关系并不总是立即引入。解决方法是构建项目,然后重新添加表。我向微软报告了这个问题,在VS2010中得到了修复。

DBML显示不显示新的外键约束


请注意,主答案中给出的说明并不清楚。更新表

打开dbml设计面 选择所有带“右”的表->单击->选择全部或CTRLa CTRLx(削减) CTRLv(粘贴) 保存并重新构建解决方案。

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

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

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

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

Marc

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

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

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

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

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