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 存储过程的实体框架似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章