Add support for Marten
I use Marten in my app and would love to see JADNC support it so I have started the work over here:
https://github.com/wayne-o/JsonApiDotNetCore.Marten
While Marten is a documentDb / ES over Postgres it actually can handle relationships. I had a stab at doing the relationships piece but got stuck building the expressions for it - I was using this as a reference;
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/expression-trees/how-to-use-expression-trees-to-build-dynamic-queries
I'll need to come back to this when I get time and also add the tests but it is a start :)
This is cool. Thanks for posting your project. If time opens up I’d love to take a look at it. We’ve had to do some custom expression tress for EF, maybe some of these can serve as examples:
https://github.com/json-api-dotnet/JsonApiDotNetCore/blob/master/src/JsonApiDotNetCore/Extensions/IQueryableExtensions.cs
There can be a lot of improvements made too. For example, anytime we look up the method info for something that doesn’t change or depend on runtime info, like IQueryable.OrderBy, it should be done once and cached...
Also, so you're aware, we are planning on pulling out EF from being installed by default hopefully landing in the v3 major release. In order to do that I would like to have at least one other ORM available. It would be really cool if we could land both Mongo and Marten. I will open an issue specifically for pulling EF out that will detail the plan.
Also, so you're aware, we are planning on pulling out EF from being installed by default hopefully landing in the v3 major release.
Yes! .. and good :)
In order to do that I would like to have at least one other ORM available. It would be really cool if we could land both Mongo and Marten.
Please also add an issue / scope for RavenDb and Dapper (which can be a number of backing-db's), too. I've just popped in, to learn and play with this library and am hamstrung because of the EF dependency.
Closing, as this feature request has been open for a very long time. The JADNC team is no longer interested in implementing this, and no community members have expressed such interest either recently. Feel free to add a comment if you'd like to start working on this.