79130861

Date: 2024-10-27 15:20:58
Score: 1
Natty:
Report link

The following post (https://github.com/dotnet/efcore/issues/33442) has the answer.

public static bool IsModified(this EntityEntry entry)
{
    if (entry.State == EntityState.Added || entry.State == EntityState.Deleted) return false;
    if (entry.State == EntityState.Modified) return true;

    var tableName = entry.Metadata.GetTableName() ?? "";

    var hasInnerChanges = entry.Context.ChangeTracker.Entries()
                            .Any(x => x.State != EntityState.Unchanged &&
                                        x.Metadata.GetTableName() == tableName &&
                                        x.Metadata.IsOwned() &&
                                        x.Metadata.IsInOwnershipPath(entry.Metadata));

    return hasInnerChanges;
}
Reasons:
  • Probably link only (1):
  • Long answer (-0.5):
  • Has code block (-0.5):
  • Self-answer (0.5):
  • Low reputation (0.5):
Posted by: Display Name