Since publishing my first post on the topic over a year ago, I've continued to look for easy ways to tackle this problem. In the last post, I ended up recommending the excellent DelegateDecompiler library to help convert plain unmapped properties to expression trees that LINQ to Entities can use. I still like this approach, but I've also been searching for a way to make this process a little more transparent and use a little less magic.
If you're using an ORM, it's not uncommon to have computed properties in addition to the ones that are stored directly in the database. Unfortunatly, these computed properties don't work with Entity Framework out of the box. In this post I'm going to discuss the problem and suggest various ways of mitigating it.
The most recent version of Nxdb includes a complete object persistence framework and this post explains some of the motivation behind it and provides some insight into how it was implemented.
For the second time in as many weeks, I have the pleasure of announcing a new open source project. This time I've released Nxdb, a high-performance embedded XML database for .NET with full XQuery support. It is essentially a .NET binding for the excellent BaseX Java XML database. However, Nxdb goes well beyond a simple wrapper by providing a native .NET API suitable for embedding (the primary focus of BaseX is on client/server uses), providing additional functionality to interface directly with .NET classes and objects, and rethinking several aspects of the BaseX design for the embedded use case. The underlying BaseX code is cross-compiled to IL using IKVM making Nxdb 100% native .NET, usable on all .NET platforms including Mono.