SPMetal Extender helps SharePoint 2010 C# developers to circumvent LINQ to SharePoint 2010 limitations. You can extend the fields that SPMetal generates (including SharePoint Server 2010's) including: taxonomy, publishing HTML, publishing
image, attachments, created by, modified.
This VSIX can also be found onthe Microsoft Visual Studio Tools Gallery
What is the Purpose of the SPMetal Extend for SharePoint 2010?
LINQ to SharePoint has several limitations; there are various techniques to improve SPMetal code generation. This project provides a Visual Studio extension to allow developers to easily work with list fields that are not covered by SPMetal's code generation.
The extension provides additional functionality to the server explorer to allow the developer to generate code to extend LINQ to SharePoint's functionality. For example, SPMetal does not generate strongly typed properties for lists fields based on "Publishing
HTML" or "Taxonomy" site columns.
There are two main components to the solution:
1.> Field code generation - Using Visual Studio's "Server Explorer", you can connect to SharePoint sites and review items in the site. You can navigate to any list in the site and the SPMetal Extend VSIX extension generates the code required
to extend the unsupported fields.
2.> SharePoint code Item Template - This is an example item template that can be added to extend SPMetal for multiple unsupported columns on a list that use LINQ to SharePoint. The code should be filled out for the specific project. The item template provides
the basic code structure and includes an example code to display attachments, publishing images, publishing HTML fields and the created by columns.
Note: Hidden fields can be retrieved using the technique used in the template however, rather use SPMetal to include parameters to generate the hidden fields i.e. use the parameters.xml file to include the columns you want. It is included in the item template
as occasionally the SPMetal can't be regenerated and this technique allows you to retrieve the data consistently using LINQ to SharePoint.