TargetFramework: netstandard2.0
EntityFrameworkCore: 2.2.6
У меня есть следующий код в OnModelCreating:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<SlotOrder>(entity =>
{
entity.Property(e => e.Id).HasConversion(
v => v.ToString(),
v => new Guid(v));
});
modelBuilder.Entity<SlotOrderDetail>(entity =>
{
entity.Property(e => e.Id).HasConversion(
v => v.ToString(),
v => new Guid(v));
entity.HasOne<SlotOrder>()
.WithMany()
.HasForeignKey(c => c.SlotOrderId);
});
}
Я не использую свойства навигации и нуждаюсь загрузить все отношения определенного объекта в SaveChangesAsyn c. В моем случае, если сущностью является SlotOrder, мне нужно определить, что она имеет дочернюю сущность SlotOrderDetail:
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default)
{
ChangeTracker.DetectChanges();
var utcNow = DateTime.UtcNow;
var added = ChangeTracker.Entries()
.Where(t => t.State == EntityState.Added)
.Select(t => t.Entity)
.ToList();
added.ForEach(entity =>
{
if (entity is IAuditable auditable)
{
auditable.CreatedAt = utcNow;
auditable.UpdatedAt = utcNow;
}
// var relationships = ...
});
return base.SaveChangesAsync(cancellationToken);
}
Любая подсказка, как это сделать?