当首先不是由EF代码创建数据库时,有没有办法检查DbContext是否与数据库匹配?
我正在寻找与Database.CompatibleWithModel类似的功能,但没有元数据。
答案 0 :(得分:7)
EF目前无法做到这一点;但是,您可以使用DDL脚本作为验证数据库中是否存在所有工件的起点。要获取此脚本,请使用
string ddlScript = ((IObjectContextAdapter)myContext).ObjectContext.CreateDatabaseScript();
某些工具可能能够使用此脚本对数据库进行架构比较。这将告诉您模型是否兼容。
答案 1 :(得分:1)
您是否尝试过使用Entity Framework Power Tools。
您可以使用这些工具来反向工程代码优先 - 生成POCO 类,派生的DbContext和现有的Code First映射 数据库中。
然后,也许您可以将反向设计的信息与您已有的信息进行比较。