对datacontext和linq到sql数据模型的更改

对datacontext和linq到sql数据模型的更改,linq,Linq,我正在从头构建一个asp应用程序,使用Linq到SQL作为我的ORM。我有一个带有datacontext的dbml文件,其中包括数据库的所有表(目前为15个)。例如,如果我通过添加表、添加字段或更改字段的数据类型对数据库进行更改,那么在发生此类更改时如何处理这些更改 我是否只是简单地将新表拖放到ORM映射器上,然后瞧 谢谢。Visual Studio IDE会将您对dbml文件所做的更改自动传输到ORM类。查看一下,您会找到答案。我更喜欢使用SqlMetal(通过bat文件)完全重新生成DB架构

我正在从头构建一个asp应用程序,使用Linq到SQL作为我的ORM。我有一个带有datacontext的dbml文件,其中包括数据库的所有表(目前为15个)。例如,如果我通过添加表、添加字段或更改字段的数据类型对数据库进行更改,那么在发生此类更改时如何处理这些更改

我是否只是简单地将新表拖放到ORM映射器上,然后瞧


谢谢。

Visual Studio IDE会将您对dbml文件所做的更改自动传输到ORM类。

查看一下,您会找到答案。

我更喜欢使用SqlMetal(通过bat文件)完全重新生成DB架构

但是,您会发现SqlMetal会为整个数据库生成。删除某些表或关系;和/或重命名某些表或生成的属性,您可以查看我的博客


然而,您当然可以通过VisualStudioDesigner来完成这一切,但这是一个手动操作,而且很烦人,需要重复一个小的更改。或者您可以手动处理DBML,但这很糟糕。

即使我将字段添加到现有表中,它在VS2008中肯定不会这样做。。。可能在VS2010?VS中不会自动更新类,但如果更改DBML文件,则会更新类。然而,这并不能回答问题-frenchie应该如何更新DBML文件?@Kirk Broadhurst:您可以使用VS编辑.DBML文件。检查此视频:如果您更改DBML,如视频中所示,VS将更新类。数据库和模型之间没有自动映射。但是,正如frenchie所说,“我只是简单地将新表拖放到ORM映射器上吗?”-是的,简单地拖放到dbml,它将反映在modelNo上,如果您将一个表拖放到设计器上,那么将创建第二个引用,
table_1
。那不是他想要的。他可以直接编辑DBML文件,或者删除然后重新添加表。这两种方法都有缺点。另请参见: