gpt4 book ai didi

entity-framework - EF ChangeTracker 访问被跟踪实体及其导航集合

转载 作者:行者123 更新时间:2023-12-04 07:39:57 24 4
gpt4 key购买 nike

我想跟踪变化。我有一个类/模型

public class Emp
{
public MoreInfo MoreInfo { get; set; }
public ICollection<Works> Works { get; set; }

public string FirstName { get; set; }
public string LastName { get; set; }
}


foreach (var e in _db.ChangeTracker.Entries<TEntity>())
{
foreach (var key in e.Properties)
{
if (key.IsModified)
{
//I can get the FirstName, LastName fields
}
}
}

但我不知道如何循环 MoreInfo 和 ICollection Works 并检查其参数?

最佳答案

根据 EF Core 术语,这些不是属性,而是导航,因此无法通过Properties 访问它们。使用 Navigations属性获取引用和集合导航属性的条目(具有公共(public)属性/方法)

foreach (var navEntry in e.Navigations)
{
// e.MoreInfo, e.Works
if (navEntry.IsModified)
{
}
}

ReferenceCollections获取相应的条目(具有特定的属性/方法)

foreach (var refEntry in e.References)
{
// e.MoreInfo
if (refEntry.IsModified)
{
}
}
foreach (var colEntry in e.Collections)
{
// e.Works
if (colEntry.IsModified)
{
}
}

但是属性导航都被认为是成员,所以你可以使用Members使用通用属性/方法处理它们

foreach (var memberEntry in e.Members)
{
// e.MoreInfo, e.Works, e.FirstName, e.LastName
if (memberEntry.IsModified)
{
}
}

关于entity-framework - EF ChangeTracker 访问被跟踪实体及其导航集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67540664/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com