【问题标题】:VS 2010 - Entity Framework with MySql Stored Procedure doesnt seem to workVS 2010 - 带有 MySql 存储过程的实体框架似乎不起作用
【发布时间】:2011-10-12 11:09:07
【问题描述】:

我想使用实体框架(edmx 文件)和 MySql 数据库。对于表和视图,VS 2010 可以正常工作,也就是说,它可以很好地生成模型类、csdl、ssdl 等文件。但是,对于存储过程,它不起作用。这就是发生的事情..

  1. 右键单击模型浏览器中的 SP,选择 [添加功能导入]。这会打开一个对话框
  2. 填写适当的值,如函数导入名称、存储过程名称
  3. 单击[获取列信息]。这会导致在此按钮底部填充一些网格。在网格中,有一列名为 [EDM Type]。由于某些未知原因,此列显示 [不支持] :(
  4. 现在,单击[创建新的复杂类型]。一切正常,没有错误
  5. 现在,点击确定按钮

完成以上所有步骤后,代码中并没有创建复杂类型,这就是问题所在。

有人可以帮忙吗?

【问题讨论】:

  • 忘了提及..我正在使用 mysql-connector-net-6.4.4 连接到 mysql 目的。
  • 嗨,我也面临同样的问题,你有解决这个问题的方法吗,请分享..提前谢谢。
  • /me 也有同样的问题 :( 当我点击“获取列信息”时,对话框似乎崩溃了

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


【解决方案1】:

我通过让实体框架创建无参数定义和关联,然后手动将参数添加到 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 解释更多

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-02
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    相关资源
    最近更新 更多