在VS 2010中执行“从数据库更新模型”时,EF向导究竟会更新什么?

时间:2010-08-19 14:05:23

标签: sql entity-framework visual-studio-2010 .net-4.0

使用VS2010和.NET 4当您右键单击EF模型并选择从数据库更新时,ADO.NET EF向导的确切更新是什么,因为我感觉很少。

例如,在SQL Server Management中使一个列可选(允许空值)(以前不可为空的值)并在VS中更新模型,不会将该实体属性更改为Nullable = true。它仍然是假的。这只是一个例子,但我认为还有更多,比如列长度变化等。

1 个答案:

答案 0 :(得分:1)

作为您的Entity Framework模型的.edmx文件实际上是一个基于XML的文件,它包含(主要)三个独立的部分:

  1. 包含有关数据库本身数据的“存储模型”。
  2. 定义应用程序中实体的“概念模型”。
  3. #1和#2之间的映射。
  4. 根据经验,我已确定“从数据库更新”过程将添加,删除或修改存储模型中与当前数据库模式不一致的任何内容。另一方面,它不会修改或删除概念模型中的任何内容(但它会添加内容)。

    这是有道理的,因为应用程序中的实体(及其属性)与数据库中的表(及其字段)之间不一定存在1-1对应关系。