LINQ2SQL:如果我对DB进行更改,如何在DBML中镜像它们?

时间:2009-09-18 10:16:34

标签: sql-server-2008 visual-studio-2008 linq-to-sql

我在当前项目中使用LINQ2SQL。我有很多桌子~30。当我创建我的DBML文件时,为了便于阅读,我改变了一些列名等。

最近,如果我对基础数据库中的表进行了更改,我刚删除并重新添加了DBML文件中的表,但这变得乏味。如何模仿DBML文件中对数据库的任何更改? (例如新列,删除列,新默认约束等)。

4 个答案:

答案 0 :(得分:4)

开箱即用,Linq-to-SQL没有更新功能 - 太棒了,但不幸的是真的。

我知道有两种工具可以解决这个问题:

  • PLINQO是一组CodeSmith代码生成模板,用于处理DBML生成并提供许多额外功能(如为每个数据库实体生成一个文件) - 包括更新!

  • Huagati tools提供更新并强制执行DBML和实体框架的命名约定

马克

答案 1 :(得分:2)

我并不认为这是正确答案,但我认为无论如何我都会说话。

我的方法是使用拖放功能来创建初始 DBML文件。然后,我在DB中进行的任何更改也可以在设计器或DBML文件(作为XML)本身中手动完成。 (您可以右键单击DBML文件,选择Open With,然后选择XML编辑器。)有时使用XML而不是在设计器中乱搞更容易/更快。

我只会考虑删除和重新添加,如您所做的那样,如果更改很重要。但是,为了添加新列,我建议直接使用dbml的XML,它可能更快。

祝你好运!

答案 2 :(得分:0)

欢迎来到繁琐的世界!除非我错过了什么,否则你的做法是正确的。

SubSonic看起来像一个有趣的选择,并且拥有

  

如果需要,它还可以动态创建数据库,在更改对象时更改架构。

答案 3 :(得分:-1)

就免费解决方案而言,有一些钝器会让您远离使用O / R设计器:SQLMetalDamien Guard's T4 templates

有多种商业解决方案可提供更多功能。

你必须问自己的问题是:我使用正确的ORM吗? LinqToSql有很多显着的缺点,数据库更改处理只是其中之一。

Do not use the Visual Studio 2008 LinqToSql O/R Designer

The drawbacks of adopting Linq To Sql