我正在使用带有EF 4模型的存储过程。
为了实现这一点,我将完成以下步骤:
我通过从数据库更新并选择它来将存储过程添加到我的模型存储中。
添加了一个函数import以指向存储过程
存储过程返回连接多个表等的查询结果,因此在“返回集合”区域中我指定了复杂类型并使用下面的获取列信息按钮可生成返回的复杂类型。
以下是我出现问题的地方:当我使用“从模型生成数据库”选项时,它会从模型存储中删除存储过程映射。
我的问题是:
如何使用“从模型生成数据库”选项但忽略存储过程映射?
在模型属性中有一个“数据库生成工作流”,它是TablePerTypeStrategy,但显然这具有从模型存储中删除存储过程的附加效果。
答案 0 :(得分:2)
我首先使用模型,但也将存储过程映射到函数导入。不幸的是,当我对模型进行更新并尝试从模型生成数据库时,它会删除我的存储过程并取消映射我的函数导入。
为了解决这个问题,我在从EDMX上的模型生成数据库之后进行撤消(并保留更新的sql脚本)。这样就可以更新数据库,并恢复我的存储过程和函数导入。
答案 1 :(得分:0)
这两种方法不能一起使用!首先使用数据库(从数据库更新模型)或首先使用模型(从模型生成数据库)。我甚至对它没有删除数据库中的存储过程感到惊讶。
当您选择从模型生成数据库时,它会从您的EDMX中删除整个存储描述和映射并生成一个新的存储描述和映射。