0
我使用Asp.net和EF 4.實體框架包含和導航屬性
在我的模型,我有兩個實體:CmsGroupsTypes
至極有一個名爲CmsContents
到實體CmsContents
導航性能。
我正在使用一個EntityDataSource
控件和一個GridView。
我需要返回CmsGroupsTypes
,但使用Navigational Property和QueryStringParameter
過濾主題。
用下面的代碼我收到一個錯誤:
'ContentId' is not a member of 'Transient.collection[CmsModel.CmsContent(Nullable=True,DefaultValue=)]'. To extract a property of a collection element, use a subquery to iterate over the collection
<asp:EntityDataSource ID="EntityDataSource1" runat="server"
ConnectionString="name=CmsConnectionStringEntityDataModel" DefaultContainerName="CmsConnectionStringEntityDataModel"
EnableFlattening="False" EntitySetName="CmsGroupsTypes" Include="it.CmsContents.ContentId"
Where="it.CmsContents.ContentId == ContentId">
<WhereParameters>
<asp:QueryStringParameter Name="ContentId" QueryStringField="ContentId" DbType="Int32" />
</WhereParameters>
</asp:EntityDataSource>
任何想法,我做錯了嗎?
我有一個相當於LINQ的版本,它正在工作,但我必須直接在EntityDataSource控件上實現。
// Get ContentId from Query String.
int myContentId = Convert.ToInt32(ContentIdFromUrl);
// Find all GroupsType for a specific Content.
var myGroupsTypesList = from g in context.CmsGroupsTypes
where g.CmsContents.Any(x => x.ContentId == myContentId)
select g;