11

エンティティ フレームワーク 4.0 とストアド プロシージャで MySQL を使用した人はいますか? SP を追加すると、入力する必要のあるフィールドが表示されません。また、手動で追加する方法もありません。[関数のインポート マッピング] をクリックすると、単に「エンティティ デザイナー モデル ブラウザーでエンティティまたは関連付けを選択して、そのマッピングを編集します」と表示されます。

どんな助けでも大歓迎です。.NET コネクタ 6.3.6 を使用しています

4

1 に答える 1

10

バグ #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>

それが役立つことを願っています! 乾杯

于 2011-05-30T14:26:51.837 に答える