It's finally that time where I can wrap up this series with a nice bow. 🎀
I've had a lot of fun learning about how data access can be done in .NET using F#, let's take a look at the series as a whole!
- From Domain types to SQL tables
- ADO.NET extensions
- Challenges of using SQL with F#
- Micro ORMs
- Full ORMs
- Code Generation
I hope I was able to give a small flavour of what it is like using each technology but if you're still looking for some guidance here are a few questions I think about with some recommended answers.
The following is my opinion please don't eat me 🦈
The below are a few questions that help me determine which route to go down for a project.
|Am I working with a "simple" domain?||Dapper, Dapper.FSharp|
|Does the database change often or without your knowledge?||(SQL Hydra + ADO.NET), Facil|
|Do I need to validate my data before creation?||ADO.NET, Donald, DustyTables, SQL Hydra, Facil|
|Do I have to deal with SQL?||Entity Framework, SQL TypeProvider|
|Do I want an F# first experience?||Dapper.FSharp, (SQL Hydra + ADO.NET), Facil, Donald, DustyTables, SQL TypeProvider|
|Is my database large?||(SQL Hydra + ADO.NET), Facil, SQL TypeProvider|
Again a lot of these tools are composable so you can easily interop between them.
It has been a long journey to get to this point and whether you've been reading from the start or just joined in a huge thank you for accompanying me.
That's all folks!