Quando non SPMetal genera proprietà EntityRef per campi di ricerca?
-
25-10-2019 - |
Domanda
Ho un definito un tipo di contenuto chiamato SPVideoDataItem che contiene questi due campi:
<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"/>
Per LUVideoQuality ottengo una proprietà in una classe denominata VideoItemDataListSPVideoDataItem :
public SPVideoQualityItem VideoQuality
che espone un EntityRef-membro, in modo da poter accedere a tutte le proprietà di SPVideoQualityItem.
Tuttavia, per LUVideoTitle spmetal genera solo due proprietà nella classe padre SPVideoDataItem
public string VideoTitleVideoItemTitle
public System.Nullable<int> VideoTitleId
dove posso solo titolo di accesso e ID.
Mi chiedo perché maniglie spmetal questo due lookups in modo diverso. Qualcuno può spiegare questo comportamento? Io preferirei che tutte le ricerche vengono gestiti come LUVideoQuality nel mio esempio.
Soluzione
Ho incontrato lo stesso problema.
Quando ho lasciato andare il principio per creare un tipo di contenuto separato e appena creato un elenco basato su contenuti di tipo Item ha fatto generare gli arbitri entità.
Altri suggerimenti
A quanto pare che abbia qualcosa a che fare con la "WebID" proprietà dei campi di ricerca. Un collega mi ha detto che lo hanno ottenuto a lavorare con l'aggiunta di
WebId="~sitecollection"
per tutti i campi di ricerca nelle definizioni del tipo di contenuto (Elements.xml). Im non marcatura questo come una risposta perché non ho controllato se si sta lavorando ora a causa di questo attributo o qualche altro cambiamento nelle definizioni.