1

使用する必要があるさまざまなオブジェクトを含む別の dll にエンティティ モデルが既にあります。EF デザイナーを使用してエンティティを作成または複製したくありません。代わりに、ストアド プロシージャを呼び出すときに特定の列を特定のプロパティにマップするように構成したいと思います。

LinqToSql のカスタム DataContext を使用して、これに非常に近いことができることを私は知っています。問題は、複雑なプロパティ タイプに列を割り当てることができないことです。例: ユーザーのアドレスを含む列が返される場合があります。User オブジェクトのプロパティである Address オブジェクトに、ユーザーのアドレスの詳細を保存したいと考えています。したがって、列 STREET は User.Address.Street にマップする必要があります。

何か案は?

4

1 に答える 1

1

ここにはいくつかのオプションがあります。

  1. 「複合型」を作成し、それをプロシージャの結果にマップできます。ただし、EDMX でそれを行う必要があります。デザイナーによってサポートされていません。詳細については、この記事をお読みください。複合型はそれ自体がエンティティ型ではないことに注意してください。したがって、これはニーズに合う場合と合わない場合があります。ただし、 "Address" を使用するストアド プロシージャの例を見つけることができます。

  2. プロシージャの可視性をプライベートに変更し、必要なマッピングを行う手動で作成された部分クラス ファイルにパブリック インターフェイスを記述できます。または、プロシージャをオーバーロードするだけです。

于 2008-09-18T13:31:30.163 に答える