VS 2010 - 带有MySql存储过程的实体框架似乎不起作用

时间:2011-10-12 11:09:07

标签: mysql visual-studio-2010 entity-framework stored-procedures

我想使用Entity Framework(edmx文件)和MySql数据库。对于表和视图,VS 2010工作正常,也就是说,它可以很好地生成Model类,csdl,ssdl等文件。但是,对于存储过程,它不起作用。这是发生了什么......

  1. 右键单击模型浏览器中的SP,选择[添加功能导入]。这打开了一个对话框
  2. 填写适当的值,例如“功能导入名称”,“存储过程名称”
  3. 点击[获取列信息]。这导致在此按钮底部填充了一些网格。在网格中,有一个名为[EDM Type]的列。由于某些未知原因,此列显示[不支持] :(
  4. 现在,点击[创建新的复杂类型]。这没关系,没有错误
  5. 现在,点击确定按钮
  6. 完成上述所有步骤后,代码中没有创建复杂类型,这就是问题所在。

    有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我通过让Entity Framework创建无参数化的定义和关联来解决这个问题,然后手动将参数添加到xml&生成了cs文件。

      public virtual ObjectResult<Nullable<int>> <stored_procedure>(DateTime date1, DateTime date2)
    {
        ObjectParameter[] parameters = { new ObjectParameter("parametertName1",  date1)
                                              , new ObjectParameter("parametertName1",  date2)
                                              };

        return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<Nullable<int>>("stored_procedure", parameters);
    }

另外,MySQL Entity Framework 4.0 Stored Procedure Field Mapping解释了更多