Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 实体框架数据库差异_C#_.net_Entity Framework_Orm - Fatal编程技术网

C# 实体框架数据库差异

C# 实体框架数据库差异,c#,.net,entity-framework,orm,C#,.net,Entity Framework,Orm,我必须更改了导致实体框架中出现异常的内容。虽然我不确定是什么,但我猜我的类与我的DB不一致。有没有办法弄清楚什么东西排不上队 例外情况如下: An exception of type 'System.InvalidOperationException' occurred in EntityFramework.dll but was not handled in user code Additional information: The model backing the 'SomethingC

我必须更改了导致实体框架中出现异常的内容。虽然我不确定是什么,但我猜我的类与我的DB不一致。有没有办法弄清楚什么东西排不上队

例外情况如下:

An exception of type 'System.InvalidOperationException'
occurred in EntityFramework.dll but was not handled in user code

Additional information:
The model backing the 'SomethingContext' context has changed since
the database was created. Consider using Code First Migrations to
update the database (http://go.microsoft.com/fwlink/?LinkId=238269).
以下是代码行:

var results = db.Table.Where(x => !x.IsBool);

是的,您的类与数据库中的架构不匹配。您的数据库是否启用了代码优先迁移?(如果没有,请参阅您提供的异常文本中链接中关于启用迁移的部分)如果您从package manager控制台生成一个新迁移(
add migration[Name]
),您将生成一些代码,这些代码将确切地显示需要对数据库进行哪些更改才能使其与您的代码匹配。如果不想,您不需要实际将迁移应用到数据库(只要不要运行
更新数据库
,如果要尝试运行应用程序,请确保自动迁移已关闭)如果您只想知道差异是什么,您可以轻松地从代码库中删除迁移。

您从一个上下文中获取元素,但试图将其添加到另一个上下文中?不,我只是在查询一个表。我再举一个例子,我试过这个,但它根本没有告诉我我期望的是什么。它似乎列出了一大堆我绝对没有编辑过的东西。还有其他想法吗?一些直接的想法:向上迁移方法中列出的内容是否准确反映了您当前的代码模型?创建迁移时,您是否以正确的数据库/上下文为目标?如果最初使用不同的初始值设定项类型创建数据库,则在启用迁移之前,可能需要删除它放在数据库迁移表中的行。如果不知道您在迁移中看到了什么样的差异,就很难提出更多建议。希望这对你有所帮助!如果迁移对您不起作用,您可以尝试另一个简单但可能会带来痛苦的选项—将应用程序重新定位到新数据库,运行它,查看EF生成的内容,然后与现有数据库进行比较。我最终发现了问题所在。似乎很多表都是在clr端删除的,所以当我运行迁移时,它有一堆
drop
方法调用。这让我很困惑,因为我没有删除任何内容(虽然有人在前一段时间删除了),但我现在明白了,对于db中的每个表,都需要一个对应的clr类。我并没有花太多时间考虑删除,因为我认为即使缺少clr类,实体仍然可以工作,但如果有clr类但没有相应的表,实体就不能工作。显然,我的假设是错误的。谢谢很高兴你把它整理好了。:-)