Skip to content

Contributing? #13

@SebastianStehle

Description

@SebastianStehle

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:

  1. MySql support
  2. 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:

  1. Make the formatting less opinionated with csharpier: https://csharpier.com/
  2. 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?
  3. Get rid of "sync" calls, nobody should use it these days.
  4. Provide some kind of entity-info class that calculates the table name and these things once and then reuses it.
  5. 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.
  6. 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 :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions