如何更新Linq to SQL dbml文件?

Ant*_*nte 195 linq-to-sql

如何更新Linq to SQL .dbml文件?

Rob*_*vey 250

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

  1. 从设计器中删除已修改的表,然后将它们从Database Explorer拖回到设计器表面.我发现,为了让它可靠地工作,你必须:

    一个.在数据库资源管理器中刷新数据库模式(右键单击,刷新)
    b.删除表格后保存设计器
    c.拖回表后再次保存.

    请注意,如果您修改了任何属性(例如,关闭关联的子属性),这显然会丢失这些修改 - 您必须再次进行修改.

  2. 使用SQLMetal从数据库重新生成模式.我看过很多博客文章,展示了如何编写脚本.

  3. 直接在DBML的"属性"窗格中进行更改.这适用于简单的更改,例如允许字段上的空值.

默认情况下,在Visual Studio 2015或Visual Studio 2017中不安装DBML设计器.您必须关闭VS,启动VS安装程序并修改安装.在LINQ到SQL工具是必须安装的功能.

  • 在https://connect.microsoft.com/VisualStudio/feedback/details/260723/linq-for-sql-designer-support-for-refresh-resync-of-tables-and-columns上请求了VS支持,但是MS不想修复. (6认同)

M46*_*463 49

要使用添加的列更新.dbml图表中的表,请执行以下操作:

  1. 更新SQL Server资源管理器窗口.
  2. 将表的"新"版本拖到.dbml图表中(下图中的report1).

report1是表的新版本

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

复制添加的列

  1. 单击表格的"旧"版本,然后按Ctrl+ V将添加的列粘贴到已存在的表格版本中.

将添加的列粘贴到旧版本的表中

  • 这似乎是最简单,破坏性最小的方法,不需要额外的工具,在VS2017中工作得很好 (4认同)
  • ...步骤 5. 删除步骤 2 中拖动的表并保存 .dbml。 (4认同)
  • 对我来说,这解决了两个问题。第一个是当我试图在表中复制和粘贴一个类似的字段然后重命名它时。这在验证时创建了不间断的“未指定”构建错误。另一个问题是,如果我删除该表,然后将其完整地添加回来,则会导致 git 中出现更大的差异(因为对象在文件中重新排列)。用这种方法,我只看到了新字段的插入,后面更清晰易懂。 (2认同)

mar*_*c_s 5

您还可以查看基于CodeSmith 的PLINQO代码生成模板集,它允许您为Linq-to-SQL做很多简洁的事情:

  • 每个类生成一个文件(而不是单个,巨大的文件)
  • 根据需要更新您的模型
  • 更多功能

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

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