我使用EF6从数据库生成模型。
public partial class FolderFiles
{
public int ID { get; set; }
public string FileName { get; set; }
public virtual Folders FolderID{ get; set; }
}
public partial class Folders
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public FoldersTreeDict()
{
this.FoldersTreeDict1 = new HashSet<FoldersTreeDict>();
this.FolderFiles = new HashSet<FolderFiles>();
}
public int ID { get; set; }
public string Name { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<FolderFiles> FolderFiles { get; set; }
}
在获得结果作为列表更新后,EF加载所有日期 FolderFiles,其中FolderID =是更新的文件夹的ID。这需要花费很多时间,而且在这种情况下根本不需要它们
以下是更新:
var model = db.Folders;
if (ModelState.IsValid)
{
try
{
var modelItem = model.SingleOrDefault(x => x.ID == item.ID);
if (modelItem != null)
{
modelItem.Name = "Test";
db.SaveChanges();
}
}
catch (Exception e)
{
ViewData["EditError"] = e.Message;
}
}
var result = model.ToList();
我在此更新中遗漏或做错了什么,因此加载了外国数据?
P.S 在我使用其他语言的其他框架中,有两种方法可以加载外部数据 1)在提货对象上(我认为它称为延迟加载) 2)当我们想从关联属性中获取数据时
答案 0 :(得分:2)
您可以使用
db.Configuration.LazyLoadingEnabled = false
将以下所有选项设置为不加载任何引用的对象。您可能需要手动加载它们。