- 1400/02/11
- 0
- 331
به ستون های جدول اضافه نمیشود
protected override void OnModelCreating(ModelBuilder builder)
{
foreach (var entityType in builder.Model.GetEntityTypes())
{
if (entityType.ClrType.GetCustomAttributes(typeof(AuditableAttribute), true).Length > 0)
{
builder.Entity(entityType.Name).Property<DateTime?>("InsertTime");
builder.Entity(entityType.Name).Property<DateTime?>("UpdateTime");
builder.Entity(entityType.Name).Property<DateTime?>("DeleteTime");
builder.Entity(entityType.Name).Property<bool>("IsDeleted");
}
}
base.OnModelCreating(builder);
}
public override int SaveChanges()
{
var modifiedEntries = ChangeTracker.Entries().Where(a => a.State == EntityState.Modified ||
a.State == EntityState.Deleted ||
a.State == EntityState.Added);
foreach(var item in modifiedEntries)
{
var entityType = item.Context.Model.FindEntityType(item.Entity.GetType());
var inserted = entityType.FindProperty("InsertTime");
var updated = entityType.FindProperty("UpdateTime");
var removed = entityType.FindProperty("DeleteTime");
var IsRemoved = entityType.FindProperty("IsDeleted");
if(item.State==EntityState.Added && inserted!=null)
{
item.Property("InsertTime").CurrentValue = DateTime.Now;
}
if (item.State == EntityState.Modified && updated != null)
{
item.Property("UpdateTime").CurrentValue = DateTime.Now;
}
if (item.State==EntityState.Deleted && IsRemoved!=null && removed!=null)
{
item.Property("DeleteTime").CurrentValue = DateTime.Now;
item.Property("IsDeleted").CurrentValue = true;
}
}
return base.SaveChanges();
}
- 1400/02/12
add-migration و update-database را هم بزنید که تغییرات بر روی دیتابیس اعمال شود
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری