【问题标题】:MySQL Entity Framework 4.0 Stored Procedure Field MappingMySQL Entity Framework 4.0 存储过程字段映射
【发布时间】:2011-07-14 08:00:54
【问题描述】:

这里有没有人使用 MySQL 和实体框架 4.0 和存储过程?当我添加一个 SP 时,它没有显示我需要输入的任何字段。我也看不到手动添加它们的方法。当我单击函数导入映射时,它只是说“在实体设计器模型浏览器上选择一个实体或关联来编辑它的映射”。

感谢任何帮助。我正在使用 .NET 连接器 6.3.6

【问题讨论】:

  • 您会发现使用 ExecuteStoreQuery 手动调用存储过程并手动提供查询所需的 MySQL 参数会简单得多。我之前曾尝试将映射强制到 edmx 文件中,但效果不佳。
  • 是的,这就是我目前一直在做的事情。我认为这最终会被更新,但现在有效。谢谢
  • 在 MySQL 连接器错误跟踪器中获取一些额外的错误报告可能不会有什么坏处,不是吗?
  • 自从你问这个问题后有什么消息吗?
  • 我只是手动制作了我的模型并自己运行 SQL 来执行 SP =/。不是我想要的,但它有效

标签: .net mysql stored-procedures entity-framework-4 mysql-connector


【解决方案1】:

由于错误 #55778(更新实体数据模型时省略存储过程参数),无法将 MySQL 存储过程自动导入实体数据模型。

作为一种解决方法,您可以手动操作创建的 .edmx 文件(.ssdl、.csdl):

如上所述导入 MySQL 存储过程

在模型中搜索存储过程名称(.edmx 文件或 .ssdl、.csdl 文件)

在存储模型 (SSDL) 内替换:

  <Function Name="GetStudentGrades" Aggregate="false" BuiltIn="false"
            NiladicFunction="false" IsComposable="false"
            ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
  </Function>

与:

  <Function Name="GetStudentGrades" Aggregate="false" BuiltIn="false"
           NiladicFunction="false" IsComposable="false"
            ParameterTypeSemantics="AllowImplicitConversion" Schema="dbo">
    <Parameter Name="StudentID" Type="int" Mode="In" />
  </Function>

在概念模型 (CSDL) 内替换:

  <FunctionImport Name="GetStudentGrades" EntitySet="StudentGrades" ReturnType=...>
  </FunctionImport>

与:

  <FunctionImport Name="GetStudentGrades" EntitySet="StudentGrades" ReturnType=...>
    <Parameter Name="StudentID" Mode="In" Type="Int32" />
  </FunctionImport>

希望对您有所帮助! 干杯

【讨论】:

  • 您好,请问现在解决了吗?我们现在可以自动将mysql存储过程导入实体数据模型吗?
  • 它似乎还没有修复。我遇到了同样的废话
  • 多年后,他们修复了导入存储过程,但只要您返回表或标量数据。没有复杂的类型。我猜这个错误是在六年前或更长时间报告的,他们不断更新连接器,但不确定他们在那里改变了什么。自从甲骨文收购了 MySql 之后,我猜事情已经走向了南方。无望。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多