繁体   English   中英

是否有任何方法可以确定在 Entity Framework 6.3 中正在编辑哪些实体

[英]Is There Any Way to Determine Which Entities are Being Edited in Entity Framework 6.3

上下文:将使用 EF 6.0 (.Net 4.7.2) 的项目转换为 .Net Core 3。

我已将 EF 项目升级到 6.3 版,不再使用 WCF 服务。 而是直接使用.edmx 在旧项目中,我能够使用dbContext.Entities跟踪更改并执行一些其他有用的操作。

是否有类似的方法可以使用此新设置获取已修改、添加或删除的实体集合?

我应该注意到我没有使用 EF Core,因为很难保持.edmx是最新的; 我们首先使用数据库。

所有功劳都归功于 jcruz 在 WCF/OData 服务设置中,我利用 dbContext.Entities 使用此技术将全局设置应用于修改后的数据:

foreach (EntityDescriptor entity in context.Entities)
{
    UpdateEntity(entity, userId);
}

切换到 .Net Core,WCF/Odata 服务的能力不再可用(我不认为)。 直接使用 EDMX,代码仅略有更改。 现在我们使用 dbContext.ChangeTracker.Entries():

using System.Data.Entity.Infrastructure;
foreach (DbEntityEntry entry in context.ChangeTracker.Entries())
{
    UpdateEntry(entry, userId);
}  

我们传入一个 DbEntityEntry 对象,而不是 EntityDescriptor。 除此之外,UpdateEntity() 是 UpdateEntry() 的精确副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM