MySQL 实体框架 4.0 存储过程字段映射

发布于 2024-10-22 05:32:06 字数 166 浏览 1 评论 0原文

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

任何帮助表示赞赏。我正在使用 .NET 连接器 6.3.6

Has anyone here used MySQL with the entity framework 4.0 and stored procedures? When I add a SP, it does not show any of my fields that I need to input. I also see no way to manually add them. When I click Function Import Mapping, it simply says "Select an Entity or Association on the Entity Designer Model Browser to edit it's mapping".

Any help is appreciated. I am using the .NET Connector 6.3.6

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2024-10-29 05:32:06

由于错误#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>

希望有帮助!
干杯

due to the bug #55778 (Stored procedure parameters are omitted during update of the entity data model) it is not possible to automatically import MySQL Stored Procedures into a entity data model.

As a workaround you could manually manipulate the created .edmx file (.ssdl, .csdl):

Import the MySQL Stored Procedure as discribed above

Search for the Stored Procedure name within the model (.edmx file or .ssdl, .csdl files)

Within the Storage Model (SSDL) replace:

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

with:

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

Within the Conceptual Model (CSDL) replace:

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

with:

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

Hope that helps!
Cheers

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文