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

Sql server 2008 LINQ2SQL:如果我对DB进行更改,如何在DBML中镜像它们?,sql-server-2008,visual-studio-2008,linq-to-sql,Sql Server 2008,Visual Studio 2008,Linq To Sql,我在当前项目中使用LINQ2SQL。我有很多桌子~30张。当我创建我的DBML文件时,为了可读性,我更改了一些列名等 最近,如果我对基础数据库中的表进行了更改,我只是删除并在DBML文件中重新添加了该表,但这会变得单调乏味。如何在DBML文件中模拟对数据库的任何更改?(例如,新建列、删除列、新建默认约束等)。欢迎来到乏味的世界!除非我错过了什么,否则你做得对 看起来是一个有趣的选择,而且自夸 如果您愿意,它还将动态创建数据库,在更改对象时更改模式 开箱即用,LINQtoSQL没有更新功能——令人

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


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

欢迎来到乏味的世界!除非我错过了什么,否则你做得对

看起来是一个有趣的选择,而且自夸

如果您愿意,它还将动态创建数据库,在更改对象时更改模式


开箱即用,LINQtoSQL没有更新功能——令人惊讶,但不幸的是,这是真的

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

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

  • 该产品更新并加强了DBML和实体框架的命名约定


马克

我不认为这是正确的答案,但我想我还是会插话的

我的方法是使用拖放功能创建初始DBML文件。然后,我在数据库中所做的任何更改也会手动在设计器或DBML文件(作为XML)中进行。(您可以右键单击DBML文件,选择“打开方式”,然后选择“XML编辑器”)。有时,使用其XML比在设计器中乱搞要容易/更快

我只考虑删除和重新添加,如你所做的,如果变化是显著的。然而,对于添加一个新列,我建议直接使用dbml的XML,这样可能会更快


祝你好运

就免费解决方案而言,有几种钝器可以让您远离O/R设计器:和

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

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


更糟糕的是,如果有需要Linq2SQL不写入的列(如审核字段(CreatedDate等)),则必须在添加它们后将它们从DBML定义中删除。每次您重新添加它们时:-(你不能用观点来修正这一点,因为那样你就不会得到FKs和relations。哦,是的,marc_确实提到了一些不错的替代方案(这也许更符合你的要求?)我只是扔掉了我的“穷人的”为子孙后代提供的解决方案/任何评论…+1用于Huagati工具。如果目标是LINQ2SQL(或EF),那么200美元是物有所值的。我觉得很遗憾M$FT没有支付名义金额,并在VS2010中包括了这一急需的工具。。。