Предоставление ListInstance через CAML - PullRequest
0 голосов
/ 01 сентября 2011

В SharePoint 2010 возможно ли не перезаписать существующий ListInstance (если он уже существует) при подготовке списка с использованием CAML?Или нужен специальный код?

Редактировать: Этот вопрос был неясен с моей стороны.Я должен был отметить, что я развертываю экземпляр списка через решение, использующее процесс сборки / развертывания vs2010 по умолчанию.При использовании этого процесса экземпляр списка удаляется и воссоздается при развертывании.Я пытаюсь не допустить его повторного создания каждый раз.

Ответы [ 2 ]

1 голос
/ 02 сентября 2011

Нет, невозможно перезаписать существующий список с помощью элемента ListInstance .Вы можете изменить EnableVersioning и Hidden .Вы также можете добавлять элементы через Data / Rows / Row.Но оригинальный список остается.

Из " документации " приведен код из Microsoft.SharePoint.SPListInstanceElement:

internal override void ElementActivated(SPFeaturePropertyCollection props, SPSqlCommand sqlcmdAppendOnly, SPWebApplication webApp, SPSite site, SPWeb web, bool fForce)
{
  bool flag1 = this.FeatureDefinition.Scope == SPFeatureScope.Site;
  bool flag2 = true;
  if (this.RootWebOnly && !web.IsRootWeb)
    flag2 = false;
  if (!flag2)
    return;
  this.EnsureDataProvisioned(this.EnsureListExists(!flag1 ? web : site.RootWeb));
}

internal SPList EnsureListExists(SPWeb web)
{
  SPList spList = web.Lists.GetListByName(this.Title, false);
  if (spList == null)
  {
    // SNIP - list would be created here
  }
  bool flag = false;
  if (this.VersioningEnabled.HasValue && spList.EnableVersioning != this.VersioningEnabled.Value)
  {
    spList.EnableVersioning = this.VersioningEnabled.Value;
    flag = true;
  }
  if (this.Hidden.HasValue && spList.Hidden != this.Hidden.Value)
  {
    spList.Hidden = this.Hidden.Value;
    flag = true;
  }
  if (flag)
    spList.Update();
  return spList;
}
0 голосов
/ 02 сентября 2011

При развертывании решения VS запрашивает у пользователя, хотят ли они перезаписать существующий экземпляр списка. Чтобы предотвратить перезапись списка (и это все вместе), « Разрешение конфликта развертывания » можно изменить на «Нет». «Разрешение конфликта развертывания» можно найти в окне свойств элемента экземпляра списка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...