检查数据库中的edmx有效性

时间:2013-06-20 08:02:36

标签: entity-framework

我想知道是否有可能在代码中检查我的edmx。实际上我要检查的是基础和edmx文件之间是否存在差异,这些差异可能导致我的代码崩溃,以便向用户(或团队支持)说明必须更新基础的例子。

Thak you :))

1 个答案:

答案 0 :(得分:0)

EDMX是一种基于文本的格式,它在内部使用XML。所以你可以使用差异。

  1. 从当前数据库版本生成EDMX
  2. 打开客户发给您的EDMX
  3. 使用您选择的实用程序对两个文件进行区分
  4. 你会很快看到差异。 XML也很容易阅读,因此您可以知道问题的确切位置。

    如果您想在运行时自动检查它,您仍然可以使用此方法,只要客户的应用程序包含适合其数据库版本的EDMX文件(只在您提供应用程序时打包它)。然后使用库来做差异。

    更新我不确定您是否可以在运行时生成EDMX文件,但如果有解决方案,则可能涉及EdmxWriter class。如果这不起作用,并且您必须在运行时进行检查(例如,您的客户有权修改您提供的数据库的模式),那么您最好比较数据库模式而不是EDMX文件。但是对于大多数情况,简单的解决方案是在某些地方包含一些关于数据库版本的元信息,它不会改变(例如数据库本身的版本号),然后检查一下。