0

我定义了一个名为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 

我只能访问标题和ID。

我想知道为什么 spmetal 以不同的方式处理这两个查找。谁能解释这种行为?在我的示例中,我希望所有查找都像 LUVideoQuality 一样处理。

4

2 回答 2

0

我遇到了同样的问题。

当我放弃创建单独内容类型的原则并仅根据内容类型 Item 创建一个列表时,它确实生成了实体 refs。

于 2012-02-28T13:55:12.047 回答
0

显然它与查找字段的“WebId”属性有关。一位同事告诉我,他们通过添加

WebId="~sitecollection" 

到内容类型定义 (Elements.xml) 中的所有查找字段。我没有将此标记为答案,因为由于此属性或定义中的其他一些更改,我没有检查它现在是否正在工作。

于 2012-03-08T10:00:02.697 回答