LINQ to SQL:更改表或将新表添加到现有数据库
LINQ to SQL 是否允许以类似于创建表的方式更改表 DataContext.CreateDatabase()
?
我知道修改数据库是不好的做法,但是,可能需要将新信息添加到我们的数据结构中。我想知道 LINQ to SQL 是否允许推送系统更改现有表?
如果没有用于此功能的内置 LINQ to SQL 类,那么实现此功能的最佳方法是什么?
更新:
这似乎是不可能的。我已请求将新功能添加到 .NET Framework 中。如果您也感兴趣,请投票:connect.microsoft.com 功能请求。
另请参阅问题 是否可以使用 Linq更改数据库表?。
Does LINQ to SQL allow tables to be altered similar to the way tables can be created DataContext.CreateDatabase()
?
I know its bad practice to modify the database, however, new information may need to be added to our data structure. I wondered if LINQ to SQL allowed for a push system to alter existing tables?
If there is no built in LINQ to SQL class for this functionality, what isthe best way to approach this?
Update:
It appears as if this is not possible. I have requested a new feature to be added to the .NET Framework. Vote for it if you are also interested: connect.microsoft.com Feature Request.
Also see the question Is it possible to use Linq to ALTER a database table?.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不知道有什么方法可以做到这一点...我认为鉴于 LINQ 试图抽象数据库的结构,这可能不是正确的工具。
我只需打开与数据库的连接并对原始数据库执行 ALTER TABLE 语句。
I don't know of any way to do it...I think given that LINQ is trying to abstract the structure of the db away, that's probably not the right tool.
I would just open a connection to the database and execute ALTER TABLE statements against the raw database.
我认为您正在寻找的术语是“数据库迁移”,由 Ruby on Rails 普及。对于 .Net,有 MigratorDotNet。它根本不与 Linq To SQL(或任何其他 ORM)绑定,但它可能有助于您实现目标。
这是 .Net 的一些其他实现
I think the term for what you're looking for is "database migrations", popularized by ruby on rails. For .Net there is MigratorDotNet. It's not tied in to Linq To SQL (or any other ORM) at all, but it might help with what you're looking to accomplish.
Here's some other implementations for .Net
查看 Paul Stovell 关于如何部署数据库的精彩文章。我过去也曾使用 SQL Deploy 取得了巨大成功。
Check out Paul Stovell's great article on How to deploy a database. I've also used SQL Deploy to much success in the past.
进行传输的一种方法是制作一个工具
1.- 该工具必须知道旧的数据库模式
2.- 该工具必须知道新的数据库模式
,只需制定升级数据库的方法,这里是一个示例
,然后从旧数据库中选择所有内容,然后在更新的数据库中创建新行
a way to do the transfer is making a tool
1.- the tool must know the old database schema
2.- the tool must know the new database schema
with that just make the methods to upgrade the database, here an example
then select all from the old database and then create the new rows in the updated database