Articles tagged #petapoco
It's been over six months since my last post here because I've been slack and I've been busy. Also, I've found a little time to spend on PetaPoco.
PetaPoco now supports partial record updates where you can specify a subset of columns to update. What's more, the T4 template generated classes can now track and update just the columns that have been modified.
PetaPoco now supports Multi-Poco mapping where one row in a result set can be mapped onto two or more POCOs. But how do we handle one-to-many and many-to-one relationships?
PetaPoco v4 is almost ready. Here's a write up on what's new and changed.
PetaPoco now has experimental support for mapping result sets onto more than one POCO type, giving yet another way to handle SQL joins.
PetaPoco version 3 is now available incorporating lots of minor changes - one of which is not backwards compatible requiring clocking the major version number.
PetaPoco now supports queries on single column scalar values - eg:
db.Query<long>(...). And some minor bug fixes.
PetaPoco - Support for non-identity primary keys, T4 template schema tweaking, improved stored proc support and SQL Server geometry types.
PetaPoco 2.1 is now available in Nuget including support for dynamics, columns with spaces, ansi strings and a few other bits and pieces.
PetaPoco's main focus is obviously to work with POCO objects. Sometimes though you just want to run query and not have to worry about declaring an object for results. C#'s 4.0's new dynamic support is perfect for this.
PetaPoco now has support for Oracle (including sequences), simpler primary key versions of SingleOrDefault, some new SQL builder bits, support for enum property types and more...
Today I received an email asking how to do SQL joins with PetaPoco. Since this is not entirely obvious and there's a couple of ways of doing it I thought I'd write it up...
I've been getting some great feedback on PetaPoco, all very positive. There's also been some great suggestions including these little tweaks...
Today I updated PetaPoco to support PostgreSQL database, tweaked some implementation details to yield better query plan caching and added the ability to query page or records without querying the total record count.
SQL Server CE is a pretty cool little single file database engine. Now that PetaPoco supports it, there's a cool little ORM engine to go with it.
Given that SubSonic's slow performance was the original reason for writing PetaPoco I thought I'd quickly update the dapper-dot-net benchmark to put things in perspective.
Last night I noticed Sam Saffron's dapper-dot-net project and thought I'd modify its benchmark program to see how PetaPoco compares... a little more tuning and PetaPoco is now right up there.
PetaPoco was already pretty quick compared to a typical Linq implementation. By eliminating the use of Reflection and replacing it with dynamically generated methods it's now even faster - by about 20%.
A couple of users have asked for better strict POCO support in PetaPoco. Specifically the ability to remap column and table names without decorating POCOs with attributes.
Sometimes when building up SQL statements you need to add multiple optional WHERE clauses. PetaPoco's new consecutive clause handling now automatically joins these correctly.
I just noticed (and fixed) a bug in PetaPoco's transaction support, and added support for named parameters on the Database class.
Some tiny improvements to PetaPoco to make paged requests a little easier.
Normally the MySQL .NET connector returns DateTimes with an unspecified DateTimeKind. UTC seems a more reasonable default...
Personally I rarely use SQL Server, but feel obliged to support it in PetaPoco.
Does a tiny 1,200 line single file library really need unit test cases? In this case, I think so...
Some more improvements to PetaPoco, mostly as a direct result of heavy usage in a number of real projects.
Do you find writing the various SQL queries for paged result sets tedious? PetaPoco can now handle this for you automatically!
Any .NET library worth it's while these days should come as a NuGet package - so PetaPoco is now up there and ready to use. See Here.
After hand coding POCO objects for a few projects it became apparent this would soon become tedious and error prone.
Since releasing PetaPoco I've been using it in anger and have completely ported Jab to use it. All in all it's gone better than expected though a few things did come up and as such improvements made.
Earlier today I announced PetaPoco and after using a little found a few things to improve.
Today I put up an first pass at a simple .NET data access layer called PetaPoco - "a tiny ORM-ish thing for your POCOs".