正在使用导航属性来“添加”;相关项目缓慢

本文关键字:缓慢 项目 添加 导航 属性 | 更新日期: 2023-09-27 17:49:24

我有一个Device与其他DeviceLogEntry的列表。device.Logs是一个导航属性,我目前添加了新的日志,如

device.Logs.Add(newEntry);     

日志定义如下

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

我的问题是,这将加载整个Logs表之前添加新的吗?如果是这样(这将是非常慢的,因为日志包含大量的条目)。有什么更好(更快)的选择吗?

正在使用导航属性来“添加”;相关项目缓慢

看起来这是一个他们现在没有修复的问题:http://entityframework.codeplex.com/workitem/683

有几件事你可以试试。

  1. 通过删除虚拟
  2. 来禁用实体的延迟加载
  3. 如果适用的话,以相反的方式添加

对于第2点,将是在日志表上公开DeviceId的情况,而不是执行:

device.Logs.Add(newEntry);  

将执行如下操作:

newEntry.DeviceId = _deviceId;
context.Logs.Add(newEntry);