Wer Linq2SharePoint verwenden möchte kommt an SPMetal nicht vorbei, daher hier eine kurze SPMetal-Einführung.
SPMetal, ein kleines Tool, mit einer unglaublich großen Wirkung :-)
SPMetal erstellt Entityklassen, die den Zugriff auf die SharePoint ContentDB unter Verwendung von Linq2SharePoint ermöglichen. Finden kann man das kleine Helferlein im 14 hives unter bin
%commonprogramfiles%\Microsoft Shared\web server extensions\14\bin
SPMetal kann über die einige wenige Konsolen-Parameter konfiguriert werden. Wer das xsd Tool zur Generierung von Entityklassen aus XML Schemata verwendet hat, wird sich auch mit der API von SPMetal schnell anfreunden können.
Anstatt alle Parameter aufzulisten hier einfach ein paar praktische Beispielscripte
- Allgemeine C# Entityklassen generieren
- SPMetal /web:http://mySP2010Server/DeveloperSite /code:DeveloperSite.cs
- Allgemeine VisualBasic Entityklassen generieren
- SPMetal /web:http://mySP2010Server/DeveloperSite /code:DeveloperSite.vb
- C# Klassen für einen bestimmten Namespace generieren
- SPMetal /web:http://mySP2010Server/DeveloperSite /code:DeveloperSite.cs /namespace:MySolution.ExternalDataSources
- C# Klassen generieren die mit dem Client Object Model lauffähig sind
- SPMetal /web:http://mySP2010Server/DeveloperSite /code:DeveloperSite.cs /useremoteapi
- C# Klassen im Context eines anderen Users generieren
- SPMetal /web:http://mySP2010Server/DeveloperSite /code:DeveloperSite.cs /user:foo /password:bar
Klassen die mit SPMetal für das Client Object Model generiert wurden dürfen keine Lookup Felder beinhalten, da diese nicht vom Client Object Model supported werden!
Analog zum xsd-Tool sind auch die von SPMetal generierten Klassen als “partial” definiert, so dass eigene Erweiterungen zu den Entities bequem ausgelagert werden können.
Es empfiehlt sich den SPMetal-Aufruf als PreBuild Ereignis in die Visual Studio Solution aufzunehmen, damit die generierten Proxies auch immer aktuell sind.