正在使用导航属性来“添加”;相关项目缓慢
本文关键字:缓慢 项目 添加 导航 属性 | 更新日期: 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
有几件事你可以试试。
- 通过删除虚拟 来禁用实体的延迟加载
- 如果适用的话,以相反的方式添加
对于第2点,将是在日志表上公开DeviceId的情况,而不是执行:
device.Logs.Add(newEntry);
将执行如下操作:
newEntry.DeviceId = _deviceId;
context.Logs.Add(newEntry);