我正在使用实体框架来调用我的存储过程。我正在使用函数导入向导来创建函数导入和复杂类型。
我遇到的问题是我想找到一种轻松刷新所有复杂类型的方法。
今天存储过程更改时,我的流程是:
1。)使用EF更新向导刷新存储过程。
2。)转到模型浏览器中的每个功能导入,然后单击编辑。
3。)单击按钮更新复杂类型。
4.。)对我所有100多个函数导入手动重复此过程。
这个更新过程在这里得到了很好的解释: http://blogs.msdn.com/b/nihitk/archive/2010/04/23/ado-net-entity-designer-in-vs-2010-stored-procedure-return-type-shape-sensing.aspx
有没有人知道如何通过命令行或某种宏来实现自动化。我不需要将其作为构建过程的一部分。
答案 0 :(得分:2)
查看Entity Framework附带的EdmGen命令行工具。找出生成包含函数导入的EDMX所需的命令行开关(很可能还有很多其他东西)。
然后编写一个小型命令行程序,该程序使用XDocument和LINQ to XML从生成的EDMX中读取您想要的XML元素,然后使用相同的技术覆盖真实EDMX中的XML元素。
如果您希望此过程成为构建的一部分(尽管会减慢速度),请将这两个命令添加到项目属性中项目的预构建事件命令行设置中。
其他开发人员和构建服务器也需要在新的合并命令的已编译版本中签入,以便调用。