我正在使用实体框架,但是关闭了代码生成并使用了我自己的poco类(详见http://blogs.msdn.com/b/adonet/archive/2009/05/21/poco-in-the-entity-framework-part-1-the-experience.aspx)。到目前为止,这已经很好了,添加实体来公开一堆表来查询,但是我希望暴露存储过程的时候到了。这不是那么简单 - 如何自己编写一个复杂类型,然后将其连接到实体模型?
我在edmx上导入功能参考,我可以将返回类型设置为复杂,甚至单击generate,但这是不可用的,因为我没有使用自动代码生成。所以我需要能够创建自己的,然后将出现在该列表中供我选择,然后能够在我的实体上下文类中创建相应的条目。在线唯一的信息似乎是通过可视化界面生成复杂的类。我不愿意手动编辑edmx文件,因为只有重新生成它才会被删除。
我到目前为止已经尝试过;
将函数添加到我的上下文类中,而不将其放在edmx中;这显然打破了无效的操作异常“在容器'EclipseEntities'中找不到FunctionImport'GetT4OpenCases'。”
将函数添加到edmx,并将返回类型设置为none,然后使用我的手动编码复杂类型将我的函数添加到上下文中,其中我看到另一个无效的operatino异常“存储过程或函数”GetT4OpenCases '没有返回类型.ExecuteFunction只支持具有返回类型的存储过程和函数。“
我不知所措!
感谢。
答案 0 :(得分:0)
好的,事实证明这很简单 - 在edmx文件中
在手动上下文类中添加条目,例如;
public IEnumerable GetT4Brokers() { return base.ExecuteFunction(“GetT4Brokers”); }