- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想跟踪变化。我有一个类/模型
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)
{
}
}
或Reference
和 Collections
获取相应的条目(具有特定的属性/方法)
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/
我有一个 Project 对象,它由许多嵌套对象组成。 要将此对象保存到数据库: 我只更改项目中的一个属性(作为测试),并将其传递给我的 DAL。 我使用 EF 从数据库加载现有项目。 我将更改后的项
有没有办法从 ChangeTracker 中获取原始实体本身(而不仅仅是原始值)? 如果 State 是 Modified,那么我想我可以这样做: // Get the DbEntityEntry f
我正在使用 EF Core 的更改跟踪器创建审计跟踪,并且针对每个具有状态 Added、Modified 或 Deleted 的实体,我创建了一个新的审计实体以插入到我的 Audit 表中。我想对 U
我想跟踪变化。我有一个类/模型 public class Emp { public MoreInfo MoreInfo { get; set; } public ICollectio
使用 Sql 2008 Change Tracking 时有没有办法手动清理跟踪表? 我知道 CHANGE_RETENTION 和 AUTO_CLEANUP 属性,但更喜欢对清理进行更多控制。 最佳答
我创建了一个 WPF MVVM执行某些操作的应用程序CRUD对 Entity 的操作放。 在 UI 中,我有一个保存/提交 button ,我想做的是创建一个事件或notification在我的Vie
我的应用程序使用 Entity Framework 6.1.0 和 DbContext API。 它是某种CAD系统,用于编辑一些工程文件。为了检测文档中的更改事实,我使用了 DbContext.Ch
如果我加载一个实体,进行一些更改,然后去保存它,EF 会生成一个更新语句。 这一定意味着在某些时候某些东西(大概是更改跟踪器)正在导航加载的对象层次结构并生成已更改的(实体、属性、值)列表。对于不相关
我注意到可以通过三种不同的方式禁用跟踪: 通过上下文属性上的 AsNoTracking 在执行最终查询之前通过 AsNoTracking 通过 context.ChangeTracker.QueryT
我最近发现并应用了 changeTracker/dirtyFlag在我的代码中成功接近,一切都很好。非常整洁有用。不过,今天,我再次尝试使用它时发生了一些奇怪的事情:somethingHasChang
我正在为我一直致力于的项目编写自动化测试,以更加熟悉 MVC、EntityFramework(代码优先)、单元测试和 Moq。 我的 Repository 类中有一个部分,每当 Repository.
我的存储库中有一个调用 datacontext.Add 方法并返回 resutl.Entity 的方法,例如: var result = _dataContext.Product.Add(prod
我有这样的事情: public override int SaveChanges() { foreach (var changeLog in this.ChangeTracker.Entrie
在 different post 中我要求澄清何时使用 DbSet.Local .我还没有得到答案,我认为这个问题可能包含太多信息。在深入挖掘之后,我可以提出一个更具体的问题。 希望你们能解释一下在我
我正在覆盖我的 DbContext SaveChanges 方法并捕获 ChangeTracker 条目。 public override int SaveChanges() { var en
我在 EF7/asp.Net Core 应用程序中遇到问题。在我的上下文中,我创建了一个保存方法: public int Save() { ChangeTracker.
我试图理解为什么 Entity Framework Core 2 的 ChangeTracker 会将已删除实体的状态设置为“已修改”(如果删除是通过从另一个实体的列表中删除该实体来完成的)。 考虑这
我试图弄清楚如何使用 Entity Framework Cores 2.1 新的 ChangeTracker.Tracked 事件来 Hook 阅读查询。不幸的是,我无法理解如何实现这一点。 由于这是
我正在使用 ASP.NET core 2.2 来开发 web api。我在存储库类中有以下方法: public async Task AddAsync(Articles article) { r
我是一名优秀的程序员,十分优秀!