- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的事情:
public override int SaveChanges()
{
foreach (var changeLog in this.ChangeTracker.Entries()
.Where(p => p.State == EntityState.Added ||
p.State == EntityState.Deleted ||
p.State == EntityState.Modified)
.SelectMany(entity => AuditRecords(entity)))
{
this.ChangeLogs.Add(changeLog);
}
return base.SaveChanges();
}
最佳答案
我会将实体的引用存储在 List<T>
中(或数组,或其他此类结构),然后调用 SaveChanges
的底层实现.
调用完成后,因为您的实体是引用类型(最佳实践表明它们应该是可变的),应该填充列表中这些项目的主键,此时您可以将更改的实体列表传递给你的审计层。
此外,您似乎正在尝试添加一个实体类型的实体并将其添加到另一个实体类型集合(无论 ChangeLogs
公开什么);我建议不要这样做。如果您在另一个实体集中输入项目,请不要重复使用这些实体,而是将实例复制到正确的实体类型。
关于.net - DbContext ChangeTracker : Id of Added Entity for Auditing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9694696/
我有一个 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
我是一名优秀的程序员,十分优秀!