2009-07-06 13 views
3

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

この問題を解決するためのヒントはありますか?私が設定できるシリアライザには設定がありますか?私はjson.netを使ってオブジェクトをシリアライズします。 LINQに設定がありますか?それだけで直接LINQ-オブジェクトをシリアル化するために非常に便利ですので、私は、私はそれらをシリアライズする前に、新しいオブジェクトを作成する必要はありません:)

答えて

5

をベストプラクティス、少なくともしばらくの最良の場合には

LINQ to SQLオブジェクトまたはEntity Frameworkエンティティをシリアル化しないことです。主な理由は、基本クラスの実装依存のデータが含まれていることです。

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

関連する問題