0
ademaygun created
- ABP Framework version: v3.3.1
- UI type: Angular
- Tiered (MVC) or Identity Server Seperated (Angular): no I am using postgres database and I want the if values are set with empty strings, they should automatically become null. So, I overrode SaveChanges() methods in MyStoreDbContext (in EntityFrameworkCore project) and add an method that called RemoveEmptyStrings() from* stackoverflow and my problem fixed. But is this best solution or does ABP provide any solution to this empty string problem?
public void RemoveEmptyStrings()
{
// Look for changes
this.ChangeTracker.DetectChanges();
// Loop through each entity
foreach (var entity in this.ChangeTracker.Entries())
{
// Use reflection to find editable string properties
var properties = from p in entity.Entity.GetType().GetProperties()
where p.PropertyType == typeof(string)
&& p.CanRead
&& p.CanWrite
select p;
// Loop through each property and replace empty strings with null
foreach (var property in properties)
{
if (string.IsNullOrWhiteSpace(property.GetValue(entity.Entity, null) as string))
property.SetValue(entity.Entity, null, null);
}
}
}
- Exception message and stack trace:
- Steps to reproduce the issue:
1 Answer(s)
-
0
hi ademaygun
I think override the ApplyAbpConcepts method is a good way.
https://github.com/abpframework/abp/blob/32402a99b07ea994efe1880e0655eff3c73e2166/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/AbpDbContext.cs#L261