当ef模型发生变化时,如何避免程序异常

本文关键字:何避免 程序 异常 变化 ef 模型 | 更新日期: 2023-09-27 18:07:33

我使用实体框架6的第三方数据库。这很好;但是,当我的模型中的表被更改时(删除了三个列),我的程序抛出一个异常:

System.Data.SqlClient.SqlException: Invalid column name '<deleted column>'

我不使用这些列。我只是从数据库里读的。我可以更新我的模型,但是当表中有另一个更改时,我的程序将再次崩溃。我如何修改我的程序,使它不会在下一次数据库更改时崩溃?

当ef模型发生变化时,如何避免程序异常

您可以使用从数据库开始的代码优先方法(从数据库生成类)。在类生成结束时,您可以删除不需要的实体(即与所有未使用的表相关的实体)或与未使用的字段相关的属性。
禁用迁移。
您还可以删除EF代码生成生成的中间文件(与。cs文件不同的文件)。
此时,任何不影响映射类/属性的数据库更改都不会导致EF中的错误。

  1. 创建只包含您需要的实体的上下文。仅使用您需要的属性创建实体。请先查看EF代码
  2. 使用Fluent API指定主键和更多。

如果你的任何实体/属性被更改/删除,它仍然会崩溃