3 回答
TA贡献1871条经验 获得超8个赞
有三种方法可以使模型保持同步。
从设计器中删除已修改的表,然后将它们从数据库资源管理器中拖回到设计器图面上。我发现,要使其可靠运行,您必须:
一种。在数据库资源管理器中刷新数据库架构(右键单击,刷新)
。删除表后保存设计器
c。向后拖动表格后再次保存。但是请注意,如果您修改了任何属性(例如,关闭关联的child属性),则显然会丢失这些修改-您必须再次进行修改。
使用SQLMetal从数据库重新生成架构。我看过许多博客文章,这些文章显示了如何编写脚本。
直接在DBML的“属性”窗格中进行更改。这适用于简单的更改,例如允许字段为空。
在Visual Studio 2015、2017或2019中,默认情况下未安装DBML设计器。您必须关闭VS,启动VS安装程序并修改安装。在LINQ到SQL工具是必须安装的功能。对于VS 2017/2019,您可以在单个组件>代码工具下找到它。
TA贡献1835条经验 获得超7个赞
我们使用一个自定义的书面T4模板,该模板可以动态查询所有.DBML文件中每个表的information_schema模型,然后使用数据库中的新架构信息覆盖.DBML文件的某些部分。我高度建议实施这样的解决方案-它节省了我很多时间,并且与删除表并在模型中重新添加表不同,您可以保留关联。使用此解决方案,当架构更改时,您将获得编译时错误。但是,您要确保您使用的是版本控制系统,因为差异确实很方便。如果您正在使用数据库模式优先方法进行开发,那么这是一个很好的解决方案,效果很好。当然,我不能共享我公司的代码,因此您自己编写自己的代码。但是,如果您了解一些Linq-to-XML并可以在该项目上上学,那么您可以到达想要的地方。
- 3 回答
- 0 关注
- 586 浏览
添加回答
举报