LINQ to SQL を使用するかなり大規模な ASP.NET MVC プロジェクトがあり、Windows Azure に移行中です。
ここで、Azure 分散キャッシュに格納するためにオブジェクトをシリアル化する必要があり、.dbml ファイルで "シリアル化モード" を "単方向" に設定し、生成されたクラスとプロパティをそれに応じて属性で自動的に装飾することが推奨されるようです。仕方。ただし、これにより、LINQ to SQL によってまだ読み込まれていないリレーションシップは、シリアル化して として保存するときに失われます。DataContract
DataMember
null
いくつかのことを考慮して、どのような進め方が望ましいでしょうか。
- 前述のように、これはかなり大きなプロジェクトであり、生成された *.designer.cs ファイルは 1.5 MB 近くになります。
- 遅延読み込みを完全に無効にすると、多くの深いクラス関係のためにパフォーマンスが大幅に低下する可能性があります 。
- ORM ツールの変更は検討中ですが、プラットフォームの変更と同時に行うのはおそらく悪いことです。
これが、プロジェクト全体でシリアル化するオブジェクトとリレーションを手動で指定することになる場合。パフォーマンスを向上させるためにprotobuf-netのようなものを使用することは、おそらく大きな一歩ではないでしょう。