Как уже говорили другие, не трогайте базу данных напрямую.Microsoft не будет поддерживать это, и даже если они это сделают, структура базы данных не документирована и более сложна, чем кажется, когда вы впервые открываете ее.
В объектной модели SharePoint много объектов,Однако некоторые из них особенно полезны, если вы пытаетесь запросить список.Я дам вам краткий список того, с чего, я думаю, вы должны начать.Как только вы освоитесь с этими функциями и с тем, что они представляют в SharePoint, вы быстро найдете другие (либо с помощью возвращаемых функций, либо с помощью MSDN).
1. SPList
Вероятно, с типом, с которым вам больше всего придется иметь дело.SPList представляет любой вид списка SharePoint.Это библиотека документов, опрос, библиотека изображений или любой другой пользовательский список.Почти все в SharePoint - это список, от Списка информации о пользователе (который используется для аутентификации) до блога (который представляет собой список записей в блоге).Элементы в списке: SPListItem
2. SPWeb и SPSite
Теперь это немного сбивает с толку, но SPSite представляет семейство сайтов, а SPWeb представляет отдельный сайт.Скажем, у вас есть сайт SharePoint на hXXp: //SharePointSite.com, а семейство сайтов (SPSite) будет hXXp: //SharePointSite.com, а SPWeb будет hXXp: //SharePointSite.com/blog или hXXp: // SharePointSite.com / about По сути, семейство сайтов - это коллекция SPWeb, представляющая собой коллекцию SPList (и других вещей, которые вас не интересуют).SPList всегда живет внутри сети.
3. SPQuery
Это SQL-код SharePoint.Хотя есть способ сделать LINQ 2 SharePoint в 2010 году ( и даже в 2007 году , но я не стал бы беспокоиться об этом, если вы все равно собираетесь перейти на 2010 год), выЯ все еще буду использовать это иногда.Вы используете SPQueries в любое время, когда хотите извлечь элементы из списка.Иногда зацикливание всех элементов в списке: foreach(item in SPList.Items)
нормально, но когда списки становятся больше, вы захотите запросить их с помощью SPQuery (точно так же, как с SQL / ADO)
Соберите все вместев пример.Скажем, у вас есть список людей где-то на вашем сайте, и вы хотели узнать, кому было 18 лет.Ваш код должен выглядеть следующим образом:
using(SPSite site = new SPSite("http://sharepointsite.com"))
{
using (SPWeb web = site.RootWeb)
{
SPList peopleList = web.Lists["People"];
SPQuery query = new SPQuery();
query.Query =
"<Where>" +
"<Eq>" +
"<FieldRef Name='Age'/><Value Type='Number'>18</Value>" +
"</Eq>" +
"</Where>";
SPListItemCollection items = peopleList.GetItems(query);
foreach(SPListItem item in items)
{
//item here represents a person who's 18 years old.
}
}
}
Уродливый язык (или разметка), используемый для создания SPQuery, называется CAML.Вы можете обратиться за помощью в Google, когда вам это нужно, но для начала вы можете прочитать эту статью , которая многое объясняет.Это инструмент, который я использую для построения запросов: U2U CAML Builder
Кстати, хотя можно запрашивать списки через веб-сервисы, я рекомендую против этого.Если вы можете запустить свой код на машине, на которой установлен SharePoint, тогда объектная модель намного лучше / более интуитивно понятна, чем веб-сервисы, которые заменяют собой только когда SharePoint не установлен.Используйте их только в случае необходимости.Данные, которые они возвращают, находятся в XML, и форматирование является болью.Также не так много доступных функций.