首页 > 解决方案 > 在不使 LINQ/ADO.NET Entity Framework + SQL Server 崩溃的情况下,可以安全地进行哪些架构更改

问题描述

我正在使用 LINQ/ADO.NET Entity Framework 连接到 SQL Server 2016,并且我想在生产中对我的数据库进行架构更改。进行这些更改的方式是:

  1. 更改数据库中的架构
  2. 部署利用它的软件的新版本

我要避免的是在 1 完成后但在 2 发生之前的停机时间。

过去,有时我会遇到更改架构会导致 ADO.NET Entity Framework/LINQ 死掉的问题。它似乎在启动时进行了某种类型的模式验证。过去,我相信当我从表中删除未使用的字段时会发生这种情况。

所以我的问题是,对数据库进行哪些类型的架构更改是“安全的”和“不安全的”,这样它们才不会导致 ADO.NET Entity Framework 开始抛出错误?我可以在保证安全的情况下添加尽可能多的字段和表格吗?

标签: c#sql-serverentity-frameworklinq

解决方案


假设您不使用 EF 迁移,EF 将不会验证或修改数据库架构。并且 EF 总是生成具有显式列名的查询。只要您不修改 EF 期望的表名和列名,或者使任何 EF 实体的关键属性不唯一 EF 应该没问题。


推荐阅读