У меня есть определенный тип контента с именем 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 в моем примере.