基本的LINQ to SQL问题:如何更新表类引用?

时间:2010-07-19 21:13:56

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

我是LINQ的新手。我正在使用Visual Studio 2008并在我的项目中创建了“LINQ to SQL Classes”(。dbml)文件。我已将每个数据库表添加到设计视图中,一切正常。

我的问题是:当在数据库中对表的设计进行了更改,即添加了字段时,如何更新类以反映更改?您是否必须从dbml设计视图中删除该表,并在每次更改表时将其拖回到设计视图表面?似乎应该有更好的方法,或者表类应该动态更新自己添加/删除新字段。表类似乎没有注意到/更新/刷新表自己的更改。

提前感谢您提出的任何建议!

4 个答案:

答案 0 :(得分:1)

有很多方法可以解决这个问题。内置方法是手动编辑,或从图中删除受影响的表并重新添加它们,或者使用设计器或SQLMetal重新生成整个DBML文件。缺点是您每次都需要重新进行任何自定义(更改的类/属性名称等)。

或者,有第三方加载项提供同步功能。我的公司制作其中一种工具,您可以在http://www.huagati.com/dbmltools/

了解更多信息,下载并获得试用许可证。

答案 1 :(得分:1)

无需删除并重新添加表格。您可以在dbml中的每个表中手动添加或删除字段。 dbml图上的表是可右键单击的。添加新字段时,可以使用属性表标识数据类型,并将列映射回数据库。

如果您正在进行重大更改,这可能会很乏味,删除和添加表通常会更简单,更快捷。但是,如果您进行任何自定义,例如向数据库中不存在的dbml添加关系,那么当您删除并读取表时,您还需要重新创建关系。

答案 2 :(得分:0)

是。您必须操作.dbml xml文件或删除该表并重新添加。

通常情况下,我会对最小值进行修改,以便我可以删除所有表格并将其全部添加回来以维护关系等。

PIA是轻描淡写的。

P.S。没有更好的方法。 (我知道)

答案 3 :(得分:0)

我对LINQ2SQL使用T4转换。

这使我可以在发生变化时简单地拖动并替换设计图面上整个庞大而丑陋的DB模式。