EF数据库首先如何更新数据库更改模型?
在类库中, Ado.net Entity Data Model
已生成POCO类。 这些都是第一次生成。 但数据库的变化没有得到反映。 在edmx
图中右键单击并Update Model from Database
选择Update Model from Database
显示新创建的表,但即使在选择要添加后也不添加表。
我尝试运行.tt(通过右键单击并运行自定义工具),但即使它没有根据最新的数据库更改重新生成Poco类。
请帮忙
不是解决方法,而是解决方法:是否不能简单地删除和重新生成EDMX和生成的类? 这就是我所做的,它比使用更新function容易得多,结果似乎是一样的。 您的POCO扩展程序仍然保持不变并且function正常。
我首先使用数据库,我有我的SQL升级脚本,源代码控制中生成的EDMX和我的Generated模型,并且它们的更改非常容易管理。 以下是每个版本的数据库升级过程的概述:
- 为升级创建.sql脚本,如
CREATE TABLE
等语句。 - 删除生成的文件:Model.Context.tt,Model.tt,Model.edmx
- 从Web.config中删除实体字符串(如果使用它)
- 以与第一次相同的方式创建EDMX和Context文件
- 如果您使用源代码管理(我希望您这样做!),请检查已更改的内容
- 测试
- 承诺!
在我的情况下,我需要保存ModelName.edmx,然后生成类。
确保app.config中的连接字符串正确无误。 我使用的是DataDictionary,我的连接字符串有以下路径:
data source=|DataDirectory|*.sqlite
因此,它没有更新。 因为此DataDirectory变量正在运行时解析。