我在当前项目中使用LINQ2SQL。我有很多桌子~30。当我创建我的DBML文件时,为了便于阅读,我改变了一些列名等。
最近,如果我对基础数据库中的表进行了更改,我刚删除并重新添加了DBML文件中的表,但这变得乏味。如何模仿DBML文件中对数据库的任何更改? (例如新列,删除列,新默认约束等)。
答案 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)
答案 3 :(得分:-1)
就免费解决方案而言,有一些钝器会让您远离使用O / R设计器:SQLMetal和Damien Guard's T4 templates。
有多种商业解决方案可提供更多功能。
你必须问自己的问题是:我使用正确的ORM吗? LinqToSql有很多显着的缺点,数据库更改处理只是其中之一。