half-ogre / dapper-wrapper Goto Github PK
View Code? Open in Web Editor NEWA simple abstraction atop the Dapper extension methods and TransactionScope for testability.
License: MIT License
A simple abstraction atop the Dapper extension methods and TransactionScope for testability.
License: MIT License
By only accepting SqlConnection I cannot use this with, for example, the MiniProfiler ProfiledDbConnection (which derives from DbConnection).
It would be better to take in IDbConnection so other types of connections can be used.
This is something that i'm doing .. and right now .. there's no way I can. (Yes, i can fork and PR ๐ )
basically, my repo takes either a connection string or an IDbExecutor. 1st ctor is for my normal code. 2nd ctor is for my TDD.
The reason i'm using two ctors is because i might use the SqlConnection multiple times in a a method (eg. get users, get cats, get dogs) .. and i open/close for each one call as early as possible.
thoughts, @half-ogre ?
Please include an example of how to use with TransactionScopeWrapper...
Hello,
Is there any chance of getting all the multi mapping Query functions exposed through the wrapper?
Thanks
Glenn
I know it's been baked for a long time, but my DI container is throwing a nasty error from time to time - not always, but it's annoying when it happens:
System.IO.FileNotFoundException: Could not load file or assembly 'Dapper, Version=1.8.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
at DapperWrapper.SqlExecutor.Query(String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType)
Seem that Dapper Wrapper take a dependency on Dapper v1.8 which doesn't exist. This can be seen in the Nuget dependecy graph as well as in the source code here itself and I'm just wondering why that is the case? Was there once upon a time a v1.8 of Dapper that disappeared?
Anyway, I thought I'd mention the issue that is throwing up on some projects since I think it's something that could quite easily be fixed. If you're accepting PRs for that kind of thing, I'd be happy to provide.
Please let me know if we can support ExecuteScalar in future release.
Hi Drew.
this is a werid one and I have no idea how to repo it. @Buildstarted did get some code going, but it seemed to work (so no issue) but in my project i got two weird issues.
=> When testing my code while debugging (eg. in an XUnit and stepping through code or just F5 debugging) the Query (from the Dapper-Wrapper) was returning NULL (sometimes).
We all know queries never return null. Empty list - sure, null, nope.
It never seemed to happen when I did a run without debugging. Like .. unit test -> run.
I'm going to have to do more research but this really stumped me for a good few hours today ๐ข
The wrapper code is very simple - which is why i'm stumped.
It's like .. when i got a result that was going to be an empty result .. I got a NULL.
Swapping my code around so i'm using a normal SqlConnection instead of a Dapper-Wrapper fixed it instantly.
So i don't have my new test(s) working right now.
Anyways - just starting a convo on this. If i get more data, i'll post it in here. Maybe someone else might be getting this issue?
You've added a .Dispose, however, I'm unable to use this in a using statement as you would with an IDbConnection... if you derive it from IDisposable, that pattern should work (I think).
Is there a reason to not do that?
At the moment it only supports SQL directly. Please accept the pull request for allowing IDbConnection...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.