Когда SPMetal генерирует свойства EntityRef для полей поиска? - PullRequest
0 голосов
/ 25 июля 2011

У меня есть определенный тип контента с именем SPVideoDataItem , содержащий эти два поля:

<Field ID="{487F2AD6-D9D6-47AA-AA99-B3FFF893E689}" Name="LUVideoQuality" Group="Custom Columns" Type="Lookup" DisplayName="Video Quality" List="Lists/GlobalVideoQualityList" ShowField="Title" PrependId="TRUE" ShowInEditForm="TRUE" ShowInNewForm="TRUE"/>
<Field ID="{F348A825-764D-41EE-AF92-8CF1DC246E47}" Name="LUVideoTitle" Group="Custom Columns" Type="Lookup" DisplayName="Video Title"  List="Lists/VideoItemList" ShowInEditForm="TRUE"  ShowInNewForm="TRUE" ShowField="VideoItemTitle" PrependId="TRUE" Required="TRUE"/>

Для LUVideoQuality я получаю свойство в классе VideoItemDataListSPVideoDataItem

public SPVideoQualityItem VideoQuality

, который предоставляет EntityRef-Member, поэтому я могу получить доступ ко всем свойствам SPVideoQualityItem.

Однако для LUVideoTitle spmetal просто создает два свойства в родительском классе SPVideoDataItem

public string VideoTitleVideoItemTitle
public System.Nullable<int> VideoTitleId 

, где я могу получить доступ только к заголовку и идентификатору.

Интересно, почему Spmetal по-разному обрабатывает эти два поиска.Кто-нибудь может объяснить это поведение?Я бы предпочел, чтобы все поиски обрабатывались как LUVideoQuality в моем примере.

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

Очевидно, что это как-то связано со свойством "WebId" полей поиска. Коллега сказал мне, что они заработали, добавив

WebId="~sitecollection" 

ко всем полям поиска в определениях типов контента (Elements.xml). Я не отмечаю это как ответ, потому что я не проверял, работает ли он сейчас из-за этого атрибута или какого-либо другого изменения в определениях.

0 голосов
/ 28 февраля 2012

Я столкнулся с той же проблемой.

Когда я отказался от принципа создания отдельного типа контента и просто создал список на основе типа контента Item, он сгенерировал ссылки на сущность.

...