将类/属性添加到 DBML 时,Linq to Sql (L2S) 是否可以更新数据库?
我有一个使用 L2S CreateDatabase 命令生成的小型 L2S 数据库。当我向 DBML 添加类或属性时,数据库不会自动更新。我在运行时收到诸如“找不到表”之类的错误。
有没有办法向数据库添加新表和列?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不可以,LINQ to SQL 无法更新数据库架构以反映对 DBML 所做的更改。为此,您必须从头开始重新创建数据库(当然,LINQ to SQL 做得不太好),或者使用类似 Wizardby 来版本和升级您的数据库架构。
No, LINQ to SQL cannot update your database schema to reflect changes made to DBML. To do so you'll have to either recreate your DB from scratch (which, granted, LINQ to SQL does not do very well), or use something like Wizardby to version and upgrade your DB schema.
不,不是。您需要刷新服务器资源管理器,然后从 DBML 中删除更改的表,然后拖放它并按 CTRL + S :}
No it is not. You need to refresh your Server Explorer, and then remove your changed table form DBML, then drag and drop it and CTRL + S :}
不是开箱即用的,但有第三方工具可以添加此类功能。看看我的工具 - Huagati DBML/EDMX Tools。
该加载项可以为您生成更改脚本,并且还有一个运行时组件,可以在您的应用程序中使用该组件来检测和生成模型与数据库之间差异的 SQL-DDL。
Not out of the box, but there are third party tools that add that kind of functionality. Take a look at my tools - Huagati DBML/EDMX Tools.
The add-in can generate the change scripts for you, and there is also a runtime component that can be used within your app to detect and generate SQL-DDL for diffs between the model and the database.