Доступ в последний раз записывает в списке sharepoint через запрос CAML

Определение имен столбцов определенно быстрее - для сервера. Но если

  1. производительность не является большим выпуском (например, это - база данных содержания веб-сайта с сотнями, возможно, тысячами - но не миллионы - строк в каждой таблице); И
  2. Ваше задание должно создать много маленьких, подобных приложений (например, направление общественности управляемые содержанием веб-сайты) использование общих основ, вместо того, чтобы создать сложное одноразовое приложение; И
  3. гибкость важна (большая настройка схемы дб для каждого сайта);

тогда Вы более обеспечены липкий с ВЫБОРОМ *. В нашей платформе интенсивное использование ВЫБОРА * позволяет нам представлять новый веб-сайт управляемое поле содержания таблице, давая все это преимуществ CMS (управление версиями, рабочий процесс/одобрения, и т.д.), только касаясь кода в нескольких точках, вместо пары дюжины точек.

я знаю, что гуру DB собираются ненавидеть меня за это - идут вперед, проваливают меня - но в моем мире, время разработчика недостаточно, и циклы ЦП в изобилии, таким образом, я корректирую соответственно, что я сохраняю и что я трачу впустую.

5
задан Tobu 12 February 2010 в 20:02
поделиться

3 ответа

<View>
<RowLimit>1</RowLimit>
<Query>
   <OrderBy>
      <FieldRef Name='Created' Ascending='False' />
   </OrderBy>
</Query>
</View>
5
ответ дан 13 December 2019 в 22:10
поделиться

Основываясь на этом ответе , который я дал на связанный вопрос , я бы предложил следующий запрос:

SPListItem lastItem;

try
{
    using (SPSite objSite = new SPSite(sSiteUrl))
    {
        using (SPWeb objWeb = objSite.OpenWeb())
        {
            SPList objList = objWeb.Lists["MainHeads"];

            SPQuery objQuery = new SPQuery();
            objQuery.Query = "<OrderBy><FieldRef Name='HeadID' Ascending='False' /></OrderBy><RowLimit>1</RowLimit>";
            objQuery.Folder = objList.RootFolder;

            // Execute the query against the list
            SPListItemCollection colItems = objList.GetItems(objQuery);

            if (colItems.Count > 0)
            {
                lastItem = colItems[0];
            }
        }
    }
}
catch (Exception ex)
{
    ...
}

return lastItem;

Это предполагает, что вы выполняете CAML в коде. ЕСЛИ нет, см. F. Акино ответ .

2
ответ дан 13 December 2019 в 22:10
поделиться
<View> 
<RowLimit>1</RowLimit> 
<Query> 
   <OrderBy> 
      <FieldRef Name='ID' Ascending='False' /> 
   </OrderBy> 
</Query> 
</View>
3
ответ дан 13 December 2019 в 22:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: