Telerik DataAccess ORMを使用している人の助けを募集しています。最近、null可能な外部キーで大きなパフォーマンスの問題が発生しました。Telerik DataAccess(OpenAccess)NULL可能な外部キーのパフォーマンス
ヌル化可能な外部キープロパティ(SaveChangesなし)に値を割り当てると、Telerikはデータベースへの呼び出しをいくつか行い、奇妙な作業を行います。私たちはdotTraceを使用して、多くのSQL DataReader呼び出しといくつかの奇妙な文字列/ DateTime/Enum/...コンバータがあることを発見しました。この問題は、値をプロパティに設定したときにのみ表示され、getは正常に機能しています。
私たちの環境についてちょっと。我々は、空のコンソールアプリケーションを作成しようとしました。同じ奇妙なコードが呼び出されますが、ローカル環境では非常に高速です - 小さなエンティティとローカルdbに対して〜60ms。大きなエンティティの場合は、〜1.5秒、ですが、Azure SQL DBを使用するプロダクションサーバーでは、10〜50秒ですです。
備考:外部キーを使用せずにオブジェクトを直接ロードして設定しようとしましたが、それは役に立ちません。
public class Entity
{
public int? ParentId { get; set; } // Wee see this issue when we set value to the ParentId or Parent property. SaveChanges is not called.
public Parent Parent { get; set; }
}
Here dotTraceコールスタックを見つけることができます。