LINQ to SQL:更改表或向现有数据库添加新表

时间:2011-01-11 22:20:13

标签: c# .net linq linq-to-sql alter-table

LINQ to SQL是否允许更改表格,类似于创建表格的方式DataContext.CreateDatabase()

我知道修改数据库的不良做法,但是,可能需要将新信息添加到我们的数据结构中。我想知道LINQ to SQL是否允许推送系统改变现有的表?

如果此功能没有内置的LINQ to SQL类,那么解决此问题的最佳方法是什么?

更新

似乎这是不可能的。我已经请求将新功能添加到.NET Framework中。如果您也有兴趣,请投票:connect.microsoft.com Feature Request

另请参阅问题Is it possible to use Linq to ALTER a database table?

4 个答案:

答案 0 :(得分:1)

我不知道有什么方法可以做到这一点......我认为鉴于LINQ试图将数据库的结构抽象出来,这可能不是正确的工具。

我只是打开一个与数据库的连接,并对原始数据库执行ALTER TABLE语句。

答案 1 :(得分:0)

我认为你所寻找的术语是“数据库迁移”,由ruby on rails推广。对于.Net,有MigratorDotNet。它根本不与Linq To SQL(或任何其他ORM)捆绑在一起,但它可能有助于你想要完成的任务。

这是。{

some other implementations

答案 2 :(得分:0)

查看Paul Stovell关于How to deploy a database的精彩文章。我过去也使用SQL Deploy取得了很大的成功。

答案 3 :(得分:0)

进行转移的方法是制作工具

1.-该工具必须知道旧的数据库模式 2.-该工具必须知道新的数据库模式

用它来制作升级数据库的方法,这里有一个例子

    table Person (old)          table Person (new)
     id                           id
     name                         name
                                  age

然后从旧数据库中选择all,然后在更新的数据库中创建新行

    new person {
       id=oldPerson.id;
       name=oldPerson.name
        age=defaultAge;
       }