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

Posted

技术标签:

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

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

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

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

有人可以帮忙吗?

【问题讨论】:

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

【讨论】:

以上是关于VS 2010 - 带有 MySql 存储过程的实体框架似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

mysql中存储过程

mysql中存储过程

用vs调试sql存储过程

VS 2010 数据库项目和由“select into”创建的表

插入带有参数MYSQL的存储过程不起作用

带有两个OUT参数和c#的Mysql存储过程