如何在ef模型更改时避免程序异常?

时间:2015-08-13 07:58:52

标签: c# sql-server entity-framework

我使用第三方数据库和Entity Framework 6.这很好用;但是,当我的模型中的表被更改(删除了三列)时,我的程序会抛出异常:

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  1. 仅使用您需要的实体创建上下文。仅使用所需属性创建实体。 参见EF code first
  2. 使用Fluent API指定主键和更多键。

即使您的任何实体/属性被更改/删除,它仍然会崩溃