EF数据库优先如何更新模型以反映数据库更改?

4
在一个类库中,Ado.net Entity Data Model生成了POCO类。这些类一开始生成得很好。但是数据库的更改没有反映出来。在edmx图中右键单击并选择从数据库更新模型会显示新创建的表,但即使选择添加表也不会添加。

我尝试运行.tt(右键单击并运行自定义工具),但即使最新的DB更改也无法重新生成Poco类。

求助!


在第二个选项卡中,您是否选择了要刷新的表格? - Yuliam Chandra
在执行“从数据库更新模型”操作后,请确保保存edmx文件。 - Chris Gong
3个回答

7

并不是解决方法,而是一种变通方法:是否有选项可以简单地删除并重新生成EDMX和生成的类?这就是我的做法,它比使用更新功能更容易,结果似乎是相同的。您的POCO扩展仍然保持相同且可用。

我使用数据库优先,并且具有我的SQL升级脚本,生成的EDMX和我的生成模型在源代码控制中,处理其中的更改非常容易。以下是每个版本我DB升级过程的概述:

  1. 为升级创建.sql脚本,例如CREATE TABLE语句等。
  2. 删除生成的文件:Model.Context.tt、Model.tt、Model.edmx
  3. 从Web.config中删除实体字符串(如果使用)
  4. 以与第一次相同的方式创建EDMX和上下文文件
  5. 如果使用源代码控制(希望是!)检查发生了什么变化
  6. 测试
  7. 提交!

0
在我的情况下,我需要保存ModelName.edmx,然后生成类。

0

确保app.config中的连接字符串是正确的。我正在使用DataDictionary,我的连接字符串具有以下路径:

data source=|DataDirectory|*.sqlite

因为这个 DataDirectory 变量在运行时被解析,所以它没有更新。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接