2011-11-22 158 views
1

我正在使用Entity Framework 4.0,VS 2010,MySql服务器数据库和mysql-connector-net-6.4.4进行连接。它工作正常,说,它可以很好地生成Model类,csdl,ssdl等文件。但是,对于存储过程它不起作用。实体框架和MySql存储过程

这里是什么情况..

右键点击从模型浏览器的SP,选择[添加功能导入。这将打开一个对话框 填充适当的值,如函数导入名称,存储过程名称 单击[获取列信息]。这会导致在此按钮底部填充一些网格。在网格中,有一列名为[EDM类型]。由于某些未知原因,此列显示[不支持]:( )现在,单击[创建新复合类型]。此操作正常,没有错误 现在,单击确定按钮 完成上述所有步骤后,然而,在代码中,这是问题的类型创建。

任何人都可以请帮助?

+0

您是否在模型浏览器的模型部分的“复杂类型”文件夹中看到复杂类型? – Mentoliptus

+0

@Mentoliptus:是的,我是:) – AhmedSalah

+0

这是答案吗?如果没有,你可以在代码中指定问题吗? – Mentoliptus

回答

0

生成Complex Type是在模型浏览器的型号部分Complex Types文件夹。

要访问TI在代码,将其作为任何其他实体使用

MyComplexType ct = new MyComplexType(); 

而且你可以使用它作为一个结果类型的存储过程:

List<MyComplexType> info = ctx.GetAllEmployees().ToList<MyComplexType>(); 

您必须确保GridView的列映射匹配Complex Type的属性,或者说GridView的财产AutoGenerateColumns设置为true。

+0

引发HttpException异常: ID为'GridView1'的GridView的数据源没有任何要从中生成列的属性或属性。确保您的数据源包含内容。 – AhmedSalah

+0

@AhmedSalah是的,我知道如果你的'GridView'没有匹配Complex Type属性的列映射,就会抛出一个异常。您必须确保使用代码或标记。 – Mentoliptus

+0

使用SQL Server执行前面的步骤时,代码运行时没有问题。我认为在使用EF – AhmedSalah