当前位置:  开发笔记 > 编程语言 > 正文

数据库架构更改后更新LINQ to SQL类的最佳方法

如何解决《数据库架构更改后更新LINQtoSQL类的最佳方法》经验,为你挑选了4个好方法。

我正在一个项目中使用LINQ to SQL类,数据库设计仍处于不断变化之中.

是否有一种简单的方法可以将类与模式同步,或者如果表设计发生更改,是否需要手动更新类?



1> vzczc..:

您可以使用SQLMetal.exe生成dbml和/或cs/vb文件.使用预构建脚本启动它并定位datacontext项目所属的目录.

C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\x64\sqlmetal.exe 
  /server: 
  /database: 
  /code:"path\Solution\DataContextProject\dbContext.cs" 
  /language:csharp 
  /namespace:


遗憾的是,没有选项只能过滤所需的表/ sprocs/schemas ...

2> Espo..:

我自己没试过,但是Huagati DBML/EDMX Tools是其他人推荐的.

Huagati DBML/EDMX Tools是Visual Studio的一个插件,它为Visual Studio 2008中的Linq2SQL/DBML图设计器和Visual Studio 2008 SP1中的ADO.NET Entity Framework设计器添加了功能.该插件添加了新的菜单选项,用于更新Linq2SQL设计器图表和数据库更改,重命名Linq-to-SQL(DBML)和EF(EDMX)类和属性以使用.net命名约定,以及向Linq添加文档/描述从数据库属性生成的SQL.

DBML工具的屏幕截图



3> Levite..:

这是一个简单的修复,没有任何其他软件,只适用于简单的更改(如添加字段,几个表等).

说明:

您将已更改的表的副本提取到设计器中(稍后将删除)

现在选择所有新的(或更改的)字段和(right-click ->)copy

在原始表中右键单击insert它们(首先删除更改的字段)

现在删除您从中复制它们的表

我知道它有点显而易见,但有点不直观,它对我帮助很大,因为所有正确的属性和类型都将被复制,并且所有链接都保持不变.希望能帮助到你.

何时使用:

当然,如上所述 - 对于小的更改,但肯定比手动替换具有许多链接的表更好,或者当您不希望由SQLMetal生成整个数据库结构时.例如,当您有大量表(例如SAP)或使用来自不同数据库的交叉链表时.



4> Rory Becker..:

DamienG编写了一些t4模板,可以替代VS为您生成的一些内容.只要您愿意,可以通过命令行工具重新运行这些.

T4模板具有可编辑的额外好处.这允许您调整生成的内容.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有