|
I use all three:
Dapper
Linq2SQL
EF
Depends on the project, but the combination is only Dapper+Linq2SQL or Dapper+EF.
Much of what I do is highly abstracted, SQL generated on the fly, so Dapper is a godsend. And unless I'm doing business logic on something, mirroring the models in C# is just stupid, in my opinionated opinion.
|
|
|
|
|
Marc Clifton wrote: SQL generated on the fly
I don't do that very often, but I may accept SQL from a script or the command line.
|
|
|
|
|
Marc Clifton wrote: Dapper
Linq2SQL
EF
We use these 3 as well in our shop.
|
|
|
|
|
Quote: ... in my opinionated opinion.
Hey, if you're going to have an opinion, that's the only kind to have!
I have lived some thirty years on this planet, and I have yet to hear the first syllable of valuable or even earnest advice from my seniors.
-- Henry David Thoreau
Ok Boomer.
-- Anonymous Millenial
|
|
|
|
|
How come opine is similar to a tree and opinion is similar to an onion?
|
|
|
|
|
Slacker007 wrote: opinion is similar to an onion
Or similar to just winging it.
|
|
|
|
|
Have not used this myself, but it looks interesting: Linq To DB[^]
It supports popular databases like MS Access, MS SQL Server, PostgreSQL, MariaDB, SQLite, Firebird, DB2, Informix and Oracle.
|
|
|
|
|
Interesting
In theory, theory and practice are the same. But in practice, they never are.”
If it's not broken, fix it until it is.
Everything makes sense in someone's mind.
|
|
|
|
|
I don't use either these days, but I haven't touched anything .NET related in like 7 years. Seems like forever.
Nothing against them. These days I'm in the Node ecosystem.
Jeremy Falcon
|
|
|
|
|
Neither: I use SQLConnector, SQLCommand, and Reader / Adapter and DataTable as necessary.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
IDbConnection, IDbCommand, IDataReader, IDbDataParameter, DataTable, DataView. I can use any database system which provides an ADO.net provider/connector (and preferably SQL-92).
By the same token, I can implement a class which is not a database but which provides an IDataReader.
No adapters, I stopped using those years ago; too much trouble. If I recall correctly, the biggest issue I had with an adapter was that it implements concurrency protection (I may have that wrong) which can't be configured off and every once in a while an update would fail because of it -- when in fact having two updates for one record in the same batch was perfectly fine for the particular situation. So I stopped using them and never looked back.
|
|
|
|
|
I use Linq-to-SQL for SQLite in a couple of projects and EF on a couple, I guess depends on the project.
Give me coffee to change the things I can and wine for those I can not!
PartsBin an Electronics Part Organizer - An updated version available! JaxCoder.com
Latest Article: Simon Says, A Child's Game
|
|
|
|
|
I don't have more than a vague idea of what you're even talking about.
|
|
|
|
|
Neither.
Using Dapper or SQLCommand, Reader.
|
|
|
|
|
Isn't LINQ To SQL ancient history?
I'm using the latest versions of EF myself.
Code first and migrations for automatic deployment.
|
|
|
|
|
I never did get the hang of Migrations, always seemed to foul things up. Much prefer creating a DB project and code it directly there. Then again, I grew up using SQL Server and just got used to coding it directly.
|
|
|
|
|
I did SQL Server for years before switching to code-first and Migrations.
Don't want to go back though.
All my "SQL" is C# now, and by extension strongly-typed, in source control and automatically deployed.
It takes some getting used to and there are some gotcha's, but for me, the pros far outweigh the cons.
Even when I have an existing database, I code it like it was code-first.
|
|
|
|
|
Never used either, I don't mind writing the code myself.
|
|
|
|
|
|
Kevin Marois wrote: Linq-To-SQL versus Entity Framework
Neither. It's usually sqlclient unless I have to target non-sql server, then it's ado.net.
I use datareaders or adapters to fill datasets/datatables. CRUD statements are all hand-rolled.
"Go forth into the source" - Neal Morse
"Hope is contagious"
|
|
|
|
|
I do not use either for Database data, Entity Framework has always had bugs and a lot of overhead that is not necessary in the name of convenience. LINQ is actually awesome with arrays and datsets but not for database query functions. For MS SQL Db SqlConnector SqlCommand SqlAdapter are best in my opinion. For all others, ODBCConnector ODBC Command and ODBCDataAdapter. MySQL would use MySqlData.DLL data connectors and for Oracle use ODP.net. You get the picture right!
|
|
|
|
|
First off, I try to decouple the data processing from the main code, so that the application is not exposed to the actual query engine used.
I tend to use EF as it can get me going quickly. But if there are bottlenecks or other issues I can move to another framework, or go straight to ADO.Net. Optimize where and when necessary.
I've just published (with help) a fairly big open-source project on Github, which scans AzDo repos and reports on all kinds of tidbits - things like what version of .Net being used, libraries, NuGet and npm packages, etc. Useful to then determine which apps should be updated, for example if you are using a version of .Net no longer getting security patches.
Sorry, rambling a bit. My point is I am considering switching some of this from SQL Server to a non-SQL backend. Easy to manage with all the DB code decoupled.
|
|
|
|
|
Kevin Marois wrote: Linq-To-SQL
Certainly I do not want to use it.
I learned this when I started SQL profiling and found that linq, with no warning at all, will not necessarily convert to SQL. Instead it can pull data in the application and then process it there.
This can lead to a single linq expression ignoring the filter clauses entirely and pulling the entire table into the application. Not hypothetical by the way, I have encountered exactly that.
I have also seen it do something similar with linq that should have produced a single SQL join. Instead it did two database queries and then correlated the two in the application.
In another case it ended up doing a while loop, again from a single linq statement, which resulted in 200+ database calls.
My expectation then is that unless the statement is very simple that I will have to profile every linq statement (and variation.)
|
|
|
|
|
My app uses Linq-to-SQL, but the data base stuff is just fluff for the customer.
Software Zen: delete this;
|
|
|
|
|
None of the above. I use Microsoft.Data.Sql/SqlClient and System.Data.Odbc and convert data tables to POCOs via XmlSerializer or JsonConvert, although I've used Dapper in both of my Blazor projects.
There are no solutions, only trade-offs. - Thomas Sowell
A day can really slip by when you're deliberately avoiding what you're supposed to do. - Calvin (Bill Watterson, Calvin & Hobbes)
|
|
|
|