繁体   English   中英

SPMetal何时为查询字段生成EntityRef属性?

[英]When does SPMetal generate EntityRef properties for lookup fields?

我定义了一个名为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一样进行处理。

我遇到了同样的问题。

当我放开创建单独的内容类型的原理并仅基于内容类型Item创建列表时,它确实会生成实体引用。

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

WebId="~sitecollection" 

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM