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

时间:2020-03-05 18:46:35  来源:igfitidea点击:

我在一个项目中使用LINQ to SQL类,而该项目的数据库设计仍然有些变化。

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

解决方案

回答

我认为杰夫最近对此抱怨。一种常见的技术是将所有对象再次拖到设计器中。

我希望其他人能以更好的方式参与进来!

回答

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

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

回答

我自己还没有尝试过,但是其他人推荐使用Huagati DBML / EDMX工具。

Huagati DBML/EDMX Tools is an add-in
  for Visual Studio that adds
  functionality to the Linq2SQL/DBML
  diagram designer in Visual Studio
  2008, and to the ADO.NET Entity
  Framework designer in Visual Studio
  2008 SP1. The add-in adds new menu
  options for updating Linq2SQL designer
  diagrams with database changes, for
  renaming Linq-to-SQL (DBML) and EF
  (EDMX) classes and properties to use
  .net naming conventions, and for
  adding documentation/descriptions to
  Linq-to-SQL generated classes from the
  database properties.

回答

DamienG已经编写了一些t4模板,可以代替VS为我们生成的一些模板。只要我们愿意,就可以通过命令行工具重新运行这些文件。

T4模板具有可编辑的添加好处。这使我们可以调整心中所产生的内容。

回答

我写了一个工具来对Dbml脚本进行脚本更改,请参阅http://code.google.com/p/linqtodbmlrunner/和我的博客http://www.adverseconditionals.com