With .NET 4 and dynamic objects, it is not so difficult to represent EAV as a DynamicObject, and then handle data access between the "fields" and the corresponding lines. Translating complex LINQ queries over EAV is more complicated.
However, many cases that really need EAV can often be achieved with SQL Sparse, XML data types, or NoSql document database alternatives. The difficulty of creating LINQ providers for some of these alternatives is not trivial, as can be seen from the LINQ efforts for MongoDb and RhinoDB.
Jim wooley
source share