数据库第一实体框架更新模型不起作用:可能是什么原因?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库第一实体框架更新模型不起作用:可能是什么原因?相关的知识,希望对你有一定的参考价值。
我有一个使用实体框架4的现有MVC 3应用程序。该模型是使用数据库优先模式生成的。我还有“自动代码生成”来生成类。
今天,我对我的数据库做了一个简单的修改。字段从“int”变为“float”。我去了.edmx,右键单击,从数据库更新模型...
但是当我看到这个领域时,它根本没有变化。我仔细检查了一切,数据库被修改了,但模型永远不会改变......这是否意味着我需要手工完成?
我记得我之前做了几次更新(比如2个月前),它似乎在当时工作......有什么可以打破,我需要检查?
编辑
在subversion中查看edmx diff文件时,似乎已完成更改,但在“图形模式”下查看时,更改不存在。此外,不会更新生成的代码。
- <Property Name="PreparationTime" Type="int" Nullable="false" />
+ <Property Name="PreparationTime" Type="float" Nullable="false" />
这是正常的行为。 ;-)
如果您只修改DB端的某些内容,即使执行“从数据库更新模型”向导,您的概念模型也不会更改。请看看这个SO answer,在那里我解释了如何构建EDMX以及它应该如何发展。
检查清单
- 检查
Output
窗口,查看命令Update model from database
期间发生的任何错误 - 从.edmx属性窗口检查数据库连接字符串
- 导致它的任何自定义代码生成模板?
- 备份.edmx的副本,然后尝试从.edmx中删除修改后的实体并重新添加
试试这个来自MSDN的黑客攻击
1.更新EDMX文件后建立项目。
2.在解决方案资源管理器中右键单击您的.tt文件。
3.选择“运行自定义工具”选项。
我知道这是一个老问题,但由于给定的答案在我的案例中不起作用,我认为我只是将解决方案留给其他有类似问题的人。
假设您正在使用SQL Server Management Studio:
- 右键单击“Database Diagrams”并选择“New Database Diagram”。
- 包括所有表格(“__ MigigrationHistory”除外,如果有的话),然后按“添加”。
- 尝试再次更新您的EDMX。
对我来说,这就是解决方案,经过几个月我一直在为edmx至关重要的项目使用解决办法,但拒绝以正常方式更新。一位新同事提到这是可能的解决办法。如果我早些时候知道这个,我本可以节省的时间......
以上是关于数据库第一实体框架更新模型不起作用:可能是什么原因?的主要内容,如果未能解决你的问题,请参考以下文章