Hi,
I have just seen your post on reddit and this is the perfect timing. I am actually struggling to resolve the license issues with my headless CMS: https://github.com/squidex/squidex and EFCore Extensions. I am also not happy with the code quality of this library, it is a mess tbh.
You are doing a lot of things right in my opinion, for example tests with test test containers.
So I was looking for alternatives and could not find anything. I actually considered to write something by myself. I have only very simple entities.
What would be interesting for me:
- MySql support
- Merge support (insert or update). I don't understand the conflict options tbh. Can I just make an
Update = e => e to update everything?
Just from looking at the code I would also suggest a few changes:
- Make the formatting less opinionated with csharpier: https://csharpier.com/
- Try to get rid of the BulkInsertProviderBase class? It is a little bit difficult to understand what is going and composition might be a better idea. If MoveRows is only supported for postgres, why is it part of the base class?
- Get rid of "sync" calls, nobody should use it these days.
- Provide some kind of entity-info class that calculates the table name and these things once and then reuses it.
- Rearrange namespaces a little bit. e.g. I would move SqliteDbContextOptionsExtensions in the Microsoft.EntityFrameworkCore, so that you do not need an extra using statement and can discover it easy.
- Get rid of reflection. It is possible to speed up the PropertyAccessor significantly: https://github.com/Squidex/squidex/blob/master/backend/src/Squidex.Infrastructure/Reflection/Internal/PropertyAccessor.cs#L19
NICE PROJECT OVERALL AND GOOD CODE QUALITY :)
Hi,
I have just seen your post on reddit and this is the perfect timing. I am actually struggling to resolve the license issues with my headless CMS: https://github.com/squidex/squidex and EFCore Extensions. I am also not happy with the code quality of this library, it is a mess tbh.
You are doing a lot of things right in my opinion, for example tests with test test containers.
So I was looking for alternatives and could not find anything. I actually considered to write something by myself. I have only very simple entities.
What would be interesting for me:
Update = e => eto update everything?Just from looking at the code I would also suggest a few changes:
NICE PROJECT OVERALL AND GOOD CODE QUALITY :)