如何获取实体框架以更新复杂类型?

时间:2011-05-12 18:09:26

标签: c# entity-framework

我正在使用实体框架(EF)从存储过程创建复杂类型。最近,存储过程发生了变化(添加了更多的返回值。我想更新映射到此存储过程的复杂类型。这是可能的,如果是这样,怎么样?我每次都删除我的函数导入和复杂类型存储过程更改,这很可能不是最好的方法。

2 个答案:

答案 0 :(得分:112)

我发现了另一种不删除复杂类型的方法。您可以更新复杂类型,Visual Studio将添加任何已更改的列。方法如下:

  1. 打开.edmx文件并转到模型浏览器。
  2. 如果存储过程已更改,请右键单击模型浏览器中的任何白色区域,然后选择“从数据库更新模型”,单击“完成”。这将刷新您的存储过程。
  3. 现在深入研究XModel.edmx> EntityContainer:XEntities>功能导入(X是您的实体名称)并右键单击您需要更新的名称。选择编辑。
  4. 点击“获取列信息”。现在,在“复杂类型”单选按钮旁边,有一个“更新”按钮。按此按钮更新复杂类型,然后按OK按钮。
  5. 应该这样做!

答案 1 :(得分:0)

有一种更简单的方法可以实现这一点,在SO处查看here。它向存储过程添加了一些元信息,EF用它来为您生成适当的返回类型。

不执行存储过程的元信息部分,它只是告诉它返回哪些列和数据类型。