3

私はLINQを使用してデータベースにアクセスしているため、ブラウザに送信したいLINQで作成されたオブジェクト(これはWebサービスです)をJSONオブジェクトとして取得します。これは今ではうまく機能しますが、データベースにいくつかのテストデータを追加すると (各テーブルに約 10 ~ 20 のエントリ)、これは惨めに失敗します。その理由は、LINQ オブジェクトにすべての参照オブジェクトが含まれているためです。これはかなり速く巨大になります。例えば。各リソースタイプには、各予約を含むすべての予約行を含むすべてのリソースが含まれています。

これを解決する方法について何かヒントはありますか? シリアライザーに設定できる設定はありますか? オブジェクトのシリアル化にはjson.netを使用します。または、LINQにいくつかの設定がありますか?

LINQオブジェクトを直接シリアル化するのは非常に便利なので、シリアル化する前に新しいオブジェクトを作成したくないのが最良のケースです:)

4

1 に答える 1

5

少なくとも現時点では、LINQをSQLオブジェクトまたはEntityFrameworkエンティティにシリアル化しないことをお勧めします。その主な理由は、基本クラスからの実装に依存するデータが含まれていることです。

代わりに、シリアル化したいものをシリアル化します。送信したいものと完全に一致するデータ転送オブジェクトを使用し、送信する前にLINQからSQLオブジェクトにコピーします。

于 2009-07-06T13:19:27.217 に答える