我正在使用
linq-to-sql的DataContext在Visual Studio 2010中工作,该DataContext有几个映射到数据库中的表.现在,当我将某些内容更改为数据库的结构时,我注意到DataContext不会更改并导致错误. DataContext不再与数据库的结构相对应.我通常通过删除DataContext中的所有表映射来解决此问题,然后再从Visual Studio中的数据库资源管理器中拖放它们.我觉得这非常麻烦,必须有更好的方法来做到这一点?当我更改数据库结构时,是否有自动更新DataContext的按钮或选项? 最佳答案
Linq2Sql模型一旦生成就与数据源断开连接.它只是在拖延和从数据源资源管理器中删除项目,建立连接并查询数据库模式.如果您的架构更改很小(即新的表列),则可以轻松地手动添加这些.对于更激烈的架构更改,您当前的方法可能是最快和最简单的.
可以使用sqlmetal.exe命令行工具自动执行此代码生成过程.我过去曾经使用过不断变化的数据库模式来处理项目,我们在每次构建之前都调用了sqlmetal,因此我们在更改时会遇到有用的编译错误.如果您的模式没有那么大的变化,您可以在项目中使用批处理文件来在必要时更新Linq2Sql模型.