c# - EF 数据库首先如何更新数据库更改的模型?

标签 c# .net entity-framework entity-framework-5 entity-framework-6

在类库 Ado.net 实体数据模型 中生成了 POCO 类。这些是第一次生成良好。但是没有反射(reflect)数据库更改。在 edmx 图中右键单击并选择 Update Model from Database 显示新创建的表,但即使选择要添加的表也不会添加。

我尝试运行 .tt(通过右键单击并运行自定义工具),但即使它也没有根据最新的数据库更改重新生成 Poco 类。

请帮忙

最佳答案

不是修复而是解决方法:简单地删除并重新生成 EDMX 和生成的类不是一个选项吗?这就是我所做的,它比使用更新功能要容易得多,而且结果似乎是一样的。您的 POCO 扩展程序仍然保持不变且功能正常。

我首先使用数据库,我有我的 SQL 升级脚本、生成的 EDMX 和我在源代码管理中生成的模型,那里的更改非常容易管理。以下是我对每个版本的数据库升级过程的粗略概述:

  1. 为升级创建 .sql 脚本,语句如 CREATE TABLE
  2. 删除生成的文件:Model.Context.tt、Model.tt、Model.edmx
  3. 从 Web.config 中删除 Entities 字符串(如果您使用它)
  4. 以与第一次相同的方式创建 EDMX 和上下文文件
  5. 如果您使用源代码管理(我希望您这样做!),请检查发生了什么变化
  6. 测试
  7. promise !

关于c# - EF 数据库首先如何更新数据库更改的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25737054/

相关文章:

c# - 嵌套事务范围,必需 -> 抑制 -> 必需

c# - 如何将 EntityFramework 中的内联查询结果转换为实体

c# - aspnet Identity 中的 Entity Framework 缓存

c# - 基于可选搜索参数使用 Entity Framework 选择数据

c# - Flickr API key 存储

c# - 在 Visual Studio 解决方案中结合 C# 和 C++

c++ - 为什么调用 GC.Collect 会加快速度

c# - 如何在 C# 中通过 linq 更新字段表?

c# - 通过 Silverlight 连接到 OLAP Cube

c# - 使用非托管导出将字符串从C#返回C++会返回数字