c# - 改DBML,如何改SQL数据库?

标签 c# .net sql linq

A 有一个使用 SQL 数据库的应用程序。该应用程序已经发布,但现在我正在进行更新。在更新中,我在我的数据库表中添加了一个额外的列。

我使用 DataContext.CreateDatabase() 从我的 DMBL 创建了数据库(不是反过来,因为我后来发现这是更常见的情况)

我在 LINQ 中有一个工具可以更新我的 SQL 数据库方案吗?

最佳答案

不,对不起。我也想有这样的设施。您必须手动升级数据库。

方法如下:

  • 创建一个名为“spGetDBVersion”的存储过程。此过程仅返回您当前部署的数据库版本的整数。
  • 在启动/安装时检查该程序的结果是否与您的程序期望的版本相匹配。
  • 如果不是 -> 以正确的顺序执行更新脚本。示例:如果 spGetDBVersion 返回 2 而您的应用程序需要 5,那么您必须执行 Update_To_3.sql、Update_To_4.sql 和 Update_To_5.sql

提示:在首次发布之后,我从未使用工具更改过我的数据库模式。我总是编写更改脚本并将其放入我的下一个更新脚本中。

不是你问的那样,但这是一个可行的解决方案。

UpdateScript 可能如下所示:

** 伪代码**

-- Update to version 2
alter table [MyTable] add newColumn int null
GO
update [MyTable] set [newColumn] = 0
GO
alter table [MyTable] change newColumn int not null
GO
alter procedure spGetDBVersion
as
begin
    select 2 as CurrentVersion
end

关于c# - 改DBML,如何改SQL数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2521850/

相关文章:

c# - C# 中的 .NET Unreal Tournament 机器人 - 无法构建 Codeplex 代码

mysql - 我如何知道我的表是事务表还是锁表?

c# - PagedList 和异步

c# - ThemeTransitions 的完成处理程序

c# - 如何使 Action<param,param2> 与事件的委托(delegate)类型兼容?

asp.net - 是否可以从 ASP.NET Core MVC 项目中引用 .net framework 4.7.2 类库?

c# - 使用各种类属性返回 Expression<>

php - sql '=' 运算符返回意外结果

sql - Postgres 数据类型整数和 bool 值

c# - 确定字符串中第一个字符的最有效方法?