Entity Framework 4.1 Code First 关系中的更改通常不需要

Posted

技术标签:

【中文标题】Entity Framework 4.1 Code First 关系中的更改通常不需要【英文标题】:Entity Framework 4.1 Code First Changes in Relationships often do not take 【发布时间】:2011-09-14 08:54:47 【问题描述】:

在更改关系后运行测试用例时,我经常会出错。在检查数据图上的关系时,我注意到它们通常没有反映我所做的任何更改或仅反映其中的一些更改,从而使模型感到困惑。只有在 Visual Studio 的服务器资源管理器中创建图表时才会出现这种情况。在 SQL Server 中创建图表时,更改显示良好。

不幸的是,这也会影响代码测试,因为我不确定是否因为我所做的关系发生变化或 Visual Studio 未更新而导致失败。每次都必须分离和附加数据库有点痛苦。

数据库已正确删除并重新创建,但 Visual Studio 似乎针对缓存版本运行代码。有没有其他人类似的问题,有什么解决办法吗?

【问题讨论】:

【参考方案1】:

我确实看到了更新 SP/函数导入并尝试更新关联的复杂类型的问题,对话框窗口在更改的列旁边显示“更新”、“删除”等,所以它肯定会看到不同,但是在应用更新时,这些似乎通常不需要,我最终手动调整复杂类型。

在上面的示例中,我不确定是否正确的方法是删除并重新创建类型,但更新函数的存在似乎表明应该可以进行更新。正如你所说,我的也感觉像是一个缓存问题,虽然我还没有找到解决方案,但我很想看看你是否能找到解决方案,如果我对此有任何基础,我也会在这里发帖!

【讨论】:

到目前为止,我发现的唯一解决方案是在 VS 中分离并重新附加数据库。这通常可以解决它,但每次都必须这样做是一件非常痛苦的事情。我尝试只在 SQL Server 中使用它,然后从那里断开并重新连接,但是 VS 不会删除并生成数据库,直到我完全从 SQL Server 中出来,这更糟。

以上是关于Entity Framework 4.1 Code First 关系中的更改通常不需要的主要内容,如果未能解决你的问题,请参考以下文章

Entity Framework 4.1Code First 连接到 Sql Server 2005

Entity Framework 4.1 Code First 关系中的更改通常不需要

Entity Framework 4.1 Code First - 插入非主键时自动递增字段

我应该如何在 MVC3 中使用 Code First Entity Framework (4.1) 声明外键关系?

virtual 关键字在 Entity Framework 4.1 POCO Code First 中可以产生啥影响?

Entity Framework 4.1 Code First,一对一,一个表连接到复合键的单个键字段