MySql EF 6存储过程导入功能不支持EDM类型

时间:2015-12-02 15:29:00

标签: c# mysql entity-framework stored-procedures

我是使用MySQL和Entity Framework的新手,在将存储过程导入edmx文件时遇到了一个问题。在下图中,您可以看到EDM类型列已列出我从SP返回的所有列都列为“不支持”。如果我继续并在窗口中单击“确定”,它将生成复杂类型类;但是,类文件中没有任何属性。

有没有办法解决这个问题?我有谷歌搜索堆栈溢出相当多。我读过的唯一解决方案是手动生成类文件并手动调用SP,或者手动修改edmx文件。

Not Supported EDM Types

1 个答案:

答案 0 :(得分:1)

这似乎是一个问题,如http://bugs.mysql.com/bug.php?id=79180所述,最近一周......。

我手动编辑edmx直接将属性添加到自动生成的ComplexType,并在自动生成的FunctionImportMapping部分的返回映射中添加ScalarProperties。

完成这些手动编辑后,我现在可以使用标准EF模型调用我的SP,并且我将返回所有返回的行和列(以下示例现在适用于我,在手动更改edmx文件之前,所有我回来的是列表中的空对象 - 每行返回一个对象 - 没有数据)

        using (var context = new therinksEntities())
        {

            ObjectResult<getGLDistSection_Result> rdrs =  context.getGLDistSection("AIM", "Deferred", "2015-07-01", "2015-09-30");
            int i = 0;
            foreach (getGLDistSection_Result result in rdrs)
            {

                NonBlockingConsole.WriteLine(i++ + ":" +  
                    result.glaccount + ":" +
                    result.posteddate + ":" +
                    result.customername + ":" +
                    result.category + ":" +
                    result.description + ":" +
                    result.debit + ":" +
                    result.credit + ":" +
                    result.balance);
            }
        }

我正在使用VS 2015和软件包 - EF 6.1.3,MySql.Data 6.9.8,MySql.Data.Entit 6.9.8 MySql数据库版本MySql 5.5.46-log

如果需要使用许多SP,这是一个痛苦的解决方法。但是,通过修改edmx并保存和验证..所有正确的代码都与属性一起生成 - 因此不需要创建手动类或其他属性。