3

この質問が既に尋ねられ、回答されている場合は、私に許してください。もしそうなら、親切に私にそれを指摘してください。私は最新のService Packを使ってVS2010を.Net 3.5(私のコントロールではないプラットフォームのアップデート)で使用しています。Entity Framework - プライマリキーのないエンティティとしてのストアドプロシージャの結果

私は以下のような行を返すストアドプロシージャを持っています。このエンティティのキ​​ーとして機能する他の列はありません。結果は次のようになります。

COUNTRYCODE  QUANTITY 
USA    100 
UK    250 
USA    300 
USA    190 

などとなります。

私は「エンティティタイプsoAndsoがキーに定義されていない。このエンティティタイプためのキーを定義し、」これは、エラーが発生し続けるhttp://blogs.microsoft.co.il/blogs/gilf/archive/2009/03/13/mapping-stored-procedure-results-to-a-custom-entity-in-entity-framework.aspx

などhttp://msdn.microsoft.com/en-us/library/cc982038(v=VS.90).aspx

からの手順に従っ

このエラーをどのように緩和しますか?私はここでプライマリキーの必要はなく、ストアドプロシージャを変更することはできません。私は最後の手段としてSOFを求めています。助けてください。どうもありがとうございました。

答えて

4

プライマリキーが不要な場合は、がこのデータをに変更してサーバーに送信する必要がないと仮定しています。この場合、エンティティタイプの代わりに複合タイプを使用する必要があります。複合型はクラスであり、エンティティと同様にDTOとしても機能しますが、複雑な型は基本的な挿入/更新/削除オブジェクトとして使用できません。

EDIT:エンティティタイプのスカラープロパティをグループ化する手段を除いて、複合型はEFv1(.NET 3.5)では使用できないようです。残念ながら、EFv1はEFv4に比べて大幅に劣っており、Entity Frameworkを使用することで問題が解決されない場合もあります。ここで

+1

うん、これは動作するはずです。..は詳細です: http://msdn.microsoft.com/en-us/library/bb738472.aspx http://msdn.microsoft.com/en-us /library/cc716733.aspx – pirho

+0

アダムありがとうございます。あなたはあなたの推測で正しいです、SPはSELECTだけを実行します。 UPDATE/INSERT/DELETEは必要ありません。 私のターゲットプラットフォームとして.Net 3.5を選択した場合、VS2010では複雑なタイプは利用できません。また、このコードを展開するマシンには4.0がインストールされていません。 :-(どうすればよいですか? – FMFF

+1

について: http://blogs.microsoft.co.il/blogs/gilf/archive/2009/03/13/mapping-stored-procedure-results-to-a-custom -entity-in-entity-framework.aspx – pirho

関連する問題