0

私はDevice他のリストを持っていDeviceLogEntryます。 device.Logsはナビゲーション プロパティであり、現在、次のような新しいログを追加しています

device.Logs.Add(newEntry);     

ログは次のように定義されています

public virtual ICollection<DeviceLogEntry> Logs { get; set; }

Logs私の質問は、新しいテーブルを追加する前にテーブル全体をロードすることですか? その場合 (ログには多数のエントリが含まれているため、これは非常に遅くなります)。より良い(より速い)代替手段は何ですか?

4

1 に答える 1

1

それは彼らが今修正していない問題のようです: http://entityframework.codeplex.com/workitem/683

あなたが試すことができるいくつかのこと。

  1. 仮想を削除してエンティティの遅延読み込みを無効にする
  2. 該当する場合は、逆の方法で追加を行います

ポイント 2 については、ログ テーブルで DeviceId を公開し、代わりに次のようにする場合です。

device.Logs.Add(newEntry);  

次のようなことをします:

newEntry.DeviceId = _deviceId;
context.Logs.Add(newEntry);
于 2014-03-10T17:28:28.580 に答える